From 4bba57225bdd211d9ca8129ba7ef7a3883069a53 Mon Sep 17 00:00:00 2001
From: Valery Kharseko <vharseko@3a-systems.ru>
Date: Tue, 04 Aug 2026 11:48:44 +0000
Subject: [PATCH] Fix CodeQL note-severity alerts: uncaught NumberFormatException in the examples (#831)

---
 opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/SearchBind.java               |    5 +
 opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/SimpleAuth.java               |    4 
 opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/SearchAsync.java              |    5 +
 opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/UpdateGroup.java              |    5 +
 opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/Proxy.java                    |    5 
 opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/Controls.java                 |    5 +
 opendj-embedded-server-examples/src/main/java/org/forgerock/opendj/examples/ConfigureServer.java   |   19 ++++
 opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/GetADChangeNotifications.java |    5 +
 opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/Server.java                   |    3 
 opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/UseSchemaAsync.java           |    5 +
 opendj-embedded-server-examples/src/main/java/org/forgerock/opendj/examples/SetupServer.java       |   23 +++++
 opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ShortLife.java                |    5 +
 opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/GetInfo.java                  |    5 +
 opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ParseAttributes.java          |    5 +
 opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/UseGenericControl.java        |    5 +
 opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ReadSchema.java               |    5 +
 opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ModifyAsync.java              |    4 
 opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/RewriterProxy.java            |    6 +
 opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/UpdateGroupAsync.java         |    5 +
 opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/SimpleAuthAsync.java          |    8 +
 opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ExampleUtils.java             |   47 +++++++++++
 opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ExtendedOperations.java       |    5 +
 opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/UseSchema.java                |    5 +
 opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/Search.java                   |    5 +
 opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/PasswordResetForAD.java       |    4 
 opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/SASLAuth.java                 |    6 +
 opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/Modify.java                   |    5 +
 opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ShortLifeAsync.java           |    5 +
 opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/SearchBindAsync.java          |    5 +
 29 files changed, 184 insertions(+), 35 deletions(-)

diff --git a/opendj-embedded-server-examples/src/main/java/org/forgerock/opendj/examples/ConfigureServer.java b/opendj-embedded-server-examples/src/main/java/org/forgerock/opendj/examples/ConfigureServer.java
index 8b39844..9084d1f 100644
--- a/opendj-embedded-server-examples/src/main/java/org/forgerock/opendj/examples/ConfigureServer.java
+++ b/opendj-embedded-server-examples/src/main/java/org/forgerock/opendj/examples/ConfigureServer.java
@@ -12,6 +12,7 @@
  * information: "Portions Copyright [year] [name of copyright owner]".
  *
  * Copyright 2016 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 
 package org.forgerock.opendj.examples;
@@ -55,7 +56,7 @@
         }
         final String serverRootDir = args[0];
         final String newBaseDn = args[1];
-        final int ldapPort = args.length > 2 ? Integer.parseInt(args[2]) : 1500;
+        final int ldapPort = args.length > 2 ? parsePort(args[2]) : 1500;
 
         EmbeddedDirectoryServer server =
                 manageEmbeddedDirectoryServer(
@@ -82,6 +83,22 @@
         }
     }
 
+    /**
+     * Returns the port number held by the provided command line argument.
+     * <p>
+     * Like the other command line argument checks of this example, a value which is not a port
+     * number is reported on standard error and stops the example.
+     */
+    private static int parsePort(final String arg) {
+        try {
+            return Integer.parseInt(arg);
+        } catch (final NumberFormatException e) {
+            System.err.println("Invalid port number: " + arg);
+            System.exit(1);
+            return -1; // Never reached: System.exit() does not return.
+        }
+    }
+
     private ConfigureServer() {
         // Not used.
     }
diff --git a/opendj-embedded-server-examples/src/main/java/org/forgerock/opendj/examples/SetupServer.java b/opendj-embedded-server-examples/src/main/java/org/forgerock/opendj/examples/SetupServer.java
index 2e8cdde..8617251 100644
--- a/opendj-embedded-server-examples/src/main/java/org/forgerock/opendj/examples/SetupServer.java
+++ b/opendj-embedded-server-examples/src/main/java/org/forgerock/opendj/examples/SetupServer.java
@@ -12,6 +12,7 @@
  * information: "Portions Copyright [year] [name of copyright owner]".
  *
  * Copyright 2016 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 
 package org.forgerock.opendj.examples;
@@ -61,9 +62,9 @@
         final String serverRootDir = args[i++];
         final String baseDn = (args.length > i) ? args[i++] : "o=example";
         final String backendType = (args.length > i) ? args[i++] : "pdb";
-        final int ldapPort = (args.length > i) ? Integer.parseInt(args[i++]) : 1500;
-        final int adminPort = (args.length > i) ? Integer.parseInt(args[i++]) : 4500;
-        final int jmxPort = (args.length > i) ? Integer.parseInt(args[i++]) : 1600;
+        final int ldapPort = (args.length > i) ? parsePort(args[i++]) : 1500;
+        final int adminPort = (args.length > i) ? parsePort(args[i++]) : 4500;
+        final int jmxPort = (args.length > i) ? parsePort(args[i++]) : 1600;
 
         performSetup(openDJArchive, serverRootDir, baseDn, backendType, ldapPort, adminPort, jmxPort);
     }
@@ -94,6 +95,22 @@
                     .jmxPort(jmxPort));
     }
 
+    /**
+     * Returns the port number held by the provided command line argument.
+     * <p>
+     * Like the other command line argument checks of this example, a value which is not a port
+     * number is reported on standard error and stops the example.
+     */
+    private static int parsePort(final String arg) {
+        try {
+            return Integer.parseInt(arg);
+        } catch (final NumberFormatException e) {
+            System.err.println("Invalid port number: " + arg);
+            System.exit(1);
+            return -1; // Never reached: System.exit() does not return.
+        }
+    }
+
     private SetupServer() {
         // Not used.
     }
diff --git a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/Controls.java b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/Controls.java
index e8cac57..324b1c3 100644
--- a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/Controls.java
+++ b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/Controls.java
@@ -12,10 +12,13 @@
  * information: "Portions Copyright [year] [name of copyright owner]".
  *
  * Copyright 2012-2016 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 
 package org.forgerock.opendj.examples;
 
+import static org.forgerock.opendj.examples.ExampleUtils.parsePort;
+
 import java.io.IOException;
 import java.util.Collection;
 
@@ -100,7 +103,7 @@
             System.exit(1);
         }
         final String host = args[0];
-        final int port = Integer.parseInt(args[1]);
+        final int port = parsePort(args[1]);
 
         final LDAPConnectionFactory factory = new LDAPConnectionFactory(host, port);
         try (Connection connection = factory.getConnection()) {
diff --git a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ExampleUtils.java b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ExampleUtils.java
new file mode 100644
index 0000000..9559472
--- /dev/null
+++ b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ExampleUtils.java
@@ -0,0 +1,47 @@
+/*
+ * The contents of this file are subject to the terms of the Common Development and
+ * Distribution License (the License). You may not use this file except in compliance with the
+ * License.
+ *
+ * You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
+ * specific language governing permission and limitations under the License.
+ *
+ * When distributing Covered Software, include this CDDL Header Notice in each file and include
+ * the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
+ * Header, with the fields enclosed by brackets [] replaced by your own identifying
+ * information: "Portions copyright [year] [name of copyright owner]".
+ *
+ * Copyright 2026 3A Systems, LLC.
+ */
+package org.forgerock.opendj.examples;
+
+import org.forgerock.opendj.ldap.ResultCode;
+
+/** Utility methods shared by the example client applications. */
+final class ExampleUtils {
+
+    /**
+     * Returns the port number held by the provided command line argument.
+     * <p>
+     * Like the other command line argument checks of the examples, a value which is not a port
+     * number is reported on standard error and stops the example, rather than failing it with a
+     * {@code NumberFormatException} stack trace.
+     *
+     * @param arg
+     *            The command line argument holding the port number.
+     * @return The port number held by the provided argument.
+     */
+    static int parsePort(final String arg) {
+        try {
+            return Integer.parseInt(arg);
+        } catch (final NumberFormatException e) {
+            System.err.println("Invalid port number: " + arg);
+            System.exit(ResultCode.CLIENT_SIDE_PARAM_ERROR.intValue());
+            return -1; // Never reached: System.exit() does not return.
+        }
+    }
+
+    private ExampleUtils() {
+        // Prevent instantiation.
+    }
+}
diff --git a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ExtendedOperations.java b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ExtendedOperations.java
index 152a76a..a66e78b 100644
--- a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ExtendedOperations.java
+++ b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ExtendedOperations.java
@@ -12,10 +12,13 @@
  * information: "Portions Copyright [year] [name of copyright owner]".
  *
  * Copyright 2012-2014 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 
 package org.forgerock.opendj.examples;
 
+import static org.forgerock.opendj.examples.ExampleUtils.parsePort;
+
 import java.util.Collection;
 
 import org.forgerock.opendj.ldap.Connection;
@@ -55,7 +58,7 @@
             System.exit(1);
         }
         final String host = args[0];
-        final int port = Integer.parseInt(args[1]);
+        final int port = parsePort(args[1]);
 
         final LDAPConnectionFactory factory = new LDAPConnectionFactory(host, port);
         Connection connection = null;
diff --git a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/GetADChangeNotifications.java b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/GetADChangeNotifications.java
index ef5abb5..509f6ce 100644
--- a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/GetADChangeNotifications.java
+++ b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/GetADChangeNotifications.java
@@ -13,10 +13,13 @@
  *
  * Copyright 2009-2010 Sun Microsystems, Inc.
  * Portions Copyright 2011-2015 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 
 package org.forgerock.opendj.examples;
 
+import static org.forgerock.opendj.examples.ExampleUtils.parsePort;
+
 import java.io.IOException;
 
 import org.forgerock.opendj.ldap.Connection;
@@ -66,7 +69,7 @@
 
         // Parse command line arguments.
         final String hostName = args[0];
-        final int port = Integer.parseInt(args[1]);
+        final int port = parsePort(args[1]);
         final String userName = args[2];
         final String password = args[3];
         final String baseDN = args[4];
diff --git a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/GetInfo.java b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/GetInfo.java
index 057b721..6f64807 100644
--- a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/GetInfo.java
+++ b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/GetInfo.java
@@ -12,9 +12,12 @@
  * information: "Portions Copyright [year] [name of copyright owner]".
  *
  * Copyright 2012-2014 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 package org.forgerock.opendj.examples;
 
+import static org.forgerock.opendj.examples.ExampleUtils.parsePort;
+
 import java.io.IOException;
 
 import org.forgerock.opendj.ldap.Connection;
@@ -113,7 +116,7 @@
         }
 
         host = args[0];
-        port = Integer.parseInt(args[1]);
+        port = parsePort(args[1]);
         infoType = args[2];
         final String infoTypeLc = infoType.toLowerCase();
         if (!"all".equals(infoTypeLc)
diff --git a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/Modify.java b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/Modify.java
index a5d7174..c36f744 100644
--- a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/Modify.java
+++ b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/Modify.java
@@ -13,10 +13,13 @@
  *
  * Copyright 2009-2010 Sun Microsystems, Inc.
  * Portions Copyright 2011-2015 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 
 package org.forgerock.opendj.examples;
 
+import static org.forgerock.opendj.examples.ExampleUtils.parsePort;
+
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.IOException;
@@ -57,7 +60,7 @@
 
         // Parse command line arguments.
         final String hostName = args[0];
-        final int port = Integer.parseInt(args[1]);
+        final int port = parsePort(args[1]);
         final String userName = args[2];
         final String password = args[3];
 
diff --git a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ModifyAsync.java b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ModifyAsync.java
index d3c7e8d..4e86673 100644
--- a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ModifyAsync.java
+++ b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ModifyAsync.java
@@ -17,7 +17,9 @@
 
 package org.forgerock.opendj.examples;
 
+import static org.forgerock.opendj.examples.ExampleUtils.parsePort;
 import static org.forgerock.util.Utils.closeSilently;
+
 import org.forgerock.opendj.ldap.Connection;
 import org.forgerock.opendj.ldap.LDAPConnectionFactory;
 import org.forgerock.opendj.ldap.LdapException;
@@ -75,7 +77,7 @@
 
         // Parse command line arguments.
         final String hostName = args[0];
-        final int port = Integer.parseInt(args[1]);
+        final int port = parsePort(args[1]);
         final String userName = args[2];
         final char[] password = args[3].toCharArray();
 
diff --git a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ParseAttributes.java b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ParseAttributes.java
index 93ad61b..aba3ed4 100644
--- a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ParseAttributes.java
+++ b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ParseAttributes.java
@@ -12,10 +12,13 @@
  * information: "Portions Copyright [year] [name of copyright owner]".
  *
  * Copyright 2012-2014 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 
 package org.forgerock.opendj.examples;
 
+import static org.forgerock.opendj.examples.ExampleUtils.parsePort;
+
 import java.io.IOException;
 import java.util.Calendar;
 import java.util.Set;
@@ -57,7 +60,7 @@
             System.exit(1);
         }
         final String host = args[0];
-        final int port = Integer.parseInt(args[1]);
+        final int port = parsePort(args[1]);
 
         // --- JCite ---
         final LDAPConnectionFactory factory = new LDAPConnectionFactory(host, port);
diff --git a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/PasswordResetForAD.java b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/PasswordResetForAD.java
index deb6d05..f163df7 100644
--- a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/PasswordResetForAD.java
+++ b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/PasswordResetForAD.java
@@ -12,10 +12,12 @@
  * information: "Portions Copyright [year] [name of copyright owner]".
  *
  * Copyright 2013-2015 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 
 package org.forgerock.opendj.examples;
 
+import static org.forgerock.opendj.examples.ExampleUtils.parsePort;
 import static org.forgerock.opendj.ldap.LDAPConnectionFactory.*;
 
 import org.forgerock.opendj.ldap.Connection;
@@ -67,7 +69,7 @@
             System.exit(1);
         }
         final String host = args[0];
-        final int port = Integer.parseInt(args[1]);
+        final int port = parsePort(args[1]);
         final String mode = args[2];
         final String bindDN = args[3];
         final String bindPassword = args[4];
diff --git a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/Proxy.java b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/Proxy.java
index 2b076bf..9c7275e 100644
--- a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/Proxy.java
+++ b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/Proxy.java
@@ -18,6 +18,7 @@
 
 package org.forgerock.opendj.examples;
 
+import static org.forgerock.opendj.examples.ExampleUtils.parsePort;
 import static org.forgerock.opendj.ldap.LDAPConnectionFactory.*;
 import static org.forgerock.opendj.ldap.LDAPListener.*;
 import static org.forgerock.opendj.ldap.requests.Requests.newSimpleBindRequest;
@@ -91,7 +92,7 @@
         }
 
         final String localAddress = args[i++];
-        final int localPort = Integer.parseInt(args[i++]);
+        final int localPort = parsePort(args[i++]);
 
         final String proxyDN = args[i++];
         final String proxyPassword = args[i++];
@@ -109,7 +110,7 @@
 
         for (; i < args.length; i += 2) {
             final String remoteAddress = args[i];
-            final int remotePort = Integer.parseInt(args[i + 1]);
+            final int remotePort = parsePort(args[i + 1]);
 
             factories.add(Connections.newCachedConnectionPool(new LDAPConnectionFactory(remoteAddress,
                                                                                         remotePort,
diff --git a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ReadSchema.java b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ReadSchema.java
index 47a6129..a427f08 100644
--- a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ReadSchema.java
+++ b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ReadSchema.java
@@ -13,10 +13,13 @@
  *
  * Copyright 2009-2010 Sun Microsystems, Inc.
  * Portions Copyright 2011-2015 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 
 package org.forgerock.opendj.examples;
 
+import static org.forgerock.opendj.examples.ExampleUtils.parsePort;
+
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.opendj.ldap.Connection;
 import org.forgerock.opendj.ldap.DN;
@@ -52,7 +55,7 @@
 
         // Parse command line arguments.
         final String hostName = args[0];
-        final int port = Integer.parseInt(args[1]);
+        final int port = parsePort(args[1]);
         final String userName = args[2];
         final String password = args[3];
 
diff --git a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/RewriterProxy.java b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/RewriterProxy.java
index 65ae330..9133786 100644
--- a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/RewriterProxy.java
+++ b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/RewriterProxy.java
@@ -13,10 +13,12 @@
  *
  * Copyright 2009-2010 Sun Microsystems, Inc.
  * Portions Copyright 2011-2016 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 
 package org.forgerock.opendj.examples;
 
+import static org.forgerock.opendj.examples.ExampleUtils.parsePort;
 import static org.forgerock.opendj.ldap.Connections.newCachedConnectionPool;
 import static org.forgerock.opendj.ldap.LDAPListener.*;
 import static org.forgerock.opendj.ldap.requests.Requests.newSimpleBindRequest;
@@ -384,11 +386,11 @@
         }
 
         final String localAddress = args[0];
-        final int localPort = Integer.parseInt(args[1]);
+        final int localPort = parsePort(args[1]);
         final String proxyDN = args[2];
         final String proxyPassword = args[3];
         final String remoteAddress = args[4];
-        final int remotePort = Integer.parseInt(args[5]);
+        final int remotePort = parsePort(args[5]);
 
         // Create connection factories.
         final Options factoryOptions = Options.defaultOptions()
diff --git a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/SASLAuth.java b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/SASLAuth.java
index ea4c563..dd748af 100644
--- a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/SASLAuth.java
+++ b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/SASLAuth.java
@@ -12,6 +12,7 @@
  * information: "Portions Copyright [year] [name of copyright owner]".
  *
  * Copyright 2011-2015 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 
 /**
@@ -22,8 +23,9 @@
  */
 package org.forgerock.opendj.examples;
 
-import static org.forgerock.opendj.ldap.LDAPConnectionFactory.SSL_USE_STARTTLS;
+import static org.forgerock.opendj.examples.ExampleUtils.parsePort;
 import static org.forgerock.opendj.ldap.LDAPConnectionFactory.SSL_CONTEXT;
+import static org.forgerock.opendj.ldap.LDAPConnectionFactory.SSL_USE_STARTTLS;
 
 
 import java.security.GeneralSecurityException;
@@ -141,7 +143,7 @@
         }
 
         host = args[0];
-        port = Integer.parseInt(args[1]);
+        port = parsePort(args[1]);
 
         if (args.length == 5) {
             authzid = args[2];
diff --git a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/Search.java b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/Search.java
index da511b4..a8e46df 100644
--- a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/Search.java
+++ b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/Search.java
@@ -13,10 +13,13 @@
  *
  * Copyright 2009-2010 Sun Microsystems, Inc.
  * Portions Copyright 2011-2015 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 
 package org.forgerock.opendj.examples;
 
+import static org.forgerock.opendj.examples.ExampleUtils.parsePort;
+
 import java.io.IOException;
 import java.util.Arrays;
 
@@ -57,7 +60,7 @@
 
         // Parse command line arguments.
         final String hostName = args[0];
-        final int port = Integer.parseInt(args[1]);
+        final int port = parsePort(args[1]);
         final String userName = args[2];
         final String password = args[3];
         final String baseDN = args[4];
diff --git a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/SearchAsync.java b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/SearchAsync.java
index 9d52a64..6102af0 100644
--- a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/SearchAsync.java
+++ b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/SearchAsync.java
@@ -12,9 +12,12 @@
  * information: "Portions Copyright [year] [name of copyright owner]".
  *
  * Copyright 2015-2016 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 package org.forgerock.opendj.examples;
 
+import static org.forgerock.opendj.examples.ExampleUtils.parsePort;
+
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.concurrent.CountDownLatch;
@@ -141,7 +144,7 @@
 
         // Parse command line arguments.
         final String hostName = args[0];
-        final int port = Integer.parseInt(args[1]);
+        final int port = parsePort(args[1]);
         userName = args[2];
         password = args[3];
         baseDN = args[4];
diff --git a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/SearchBind.java b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/SearchBind.java
index 75bfd78..32c14df 100644
--- a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/SearchBind.java
+++ b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/SearchBind.java
@@ -12,10 +12,13 @@
  * information: "Portions Copyright [year] [name of copyright owner]".
  *
  * Copyright 2012-2015 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 
 package org.forgerock.opendj.examples;
 
+import static org.forgerock.opendj.examples.ExampleUtils.parsePort;
+
 import java.io.Console;
 
 import org.forgerock.opendj.ldap.Connection;
@@ -53,7 +56,7 @@
             System.exit(1);
         }
         String host = args[0];
-        int port = Integer.parseInt(args[1]);
+        int port = parsePort(args[1]);
         String baseDN = args[2];
 
         // --- JCite ---
diff --git a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/SearchBindAsync.java b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/SearchBindAsync.java
index 3d59c2c..12e5210 100644
--- a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/SearchBindAsync.java
+++ b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/SearchBindAsync.java
@@ -12,11 +12,14 @@
  * information: "Portions Copyright [year] [name of copyright owner]".
  *
  * Copyright 2015 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 
 package org.forgerock.opendj.examples;
 
+import static org.forgerock.opendj.examples.ExampleUtils.parsePort;
 import static org.forgerock.util.Utils.closeSilently;
+
 import org.forgerock.opendj.ldap.Connection;
 import org.forgerock.opendj.ldap.Filter;
 import org.forgerock.opendj.ldap.LDAPConnectionFactory;
@@ -80,7 +83,7 @@
             System.exit(1);
         }
         final String host   = args[0];
-        final int    port   = Integer.parseInt(args[1]);
+        final int    port   = parsePort(args[1]);
         final String baseDn = args[2];
 
         // Prompt for email address and password.
diff --git a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/Server.java b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/Server.java
index f48eda9..3ca33ee 100644
--- a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/Server.java
+++ b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/Server.java
@@ -18,6 +18,7 @@
 
 package org.forgerock.opendj.examples;
 
+import static org.forgerock.opendj.examples.ExampleUtils.parsePort;
 import static org.forgerock.opendj.ldap.LDAPListener.*;
 
 import java.io.FileInputStream;
@@ -73,7 +74,7 @@
 
         // Parse command line arguments.
         final String localAddress = args[0];
-        final int localPort = Integer.parseInt(args[1]);
+        final int localPort = parsePort(args[1]);
         final String ldifFileName = args[2];
         final String keyStoreFileName = (args.length == 6) ? args[3] : null;
         final String keyStorePassword = (args.length == 6) ? args[4] : null;
diff --git a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ShortLife.java b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ShortLife.java
index 095fb71..99dcecf 100644
--- a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ShortLife.java
+++ b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ShortLife.java
@@ -12,10 +12,13 @@
  * information: "Portions Copyright [year] [name of copyright owner]".
  *
  * Copyright 2012-2015 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 
 package org.forgerock.opendj.examples;
 
+import static org.forgerock.opendj.examples.ExampleUtils.parsePort;
+
 import java.io.IOException;
 
 import org.forgerock.opendj.ldap.Connection;
@@ -59,7 +62,7 @@
             System.exit(1);
         }
         String host = args[0];
-        int port = Integer.parseInt(args[1]);
+        int port = parsePort(args[1]);
 
         // User credentials of a "Directory Administrators" group member.
         // Kirsten Vaughan is authorized to create, update, and delete
diff --git a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ShortLifeAsync.java b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ShortLifeAsync.java
index 9a6f257..0ed5ef7 100644
--- a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ShortLifeAsync.java
+++ b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/ShortLifeAsync.java
@@ -12,11 +12,14 @@
  * information: "Portions Copyright [year] [name of copyright owner]".
  *
  * Copyright 2015 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 
 package org.forgerock.opendj.examples;
 
+import static org.forgerock.opendj.examples.ExampleUtils.parsePort;
 import static org.forgerock.util.Utils.closeSilently;
+
 import org.forgerock.opendj.ldap.Connection;
 import org.forgerock.opendj.ldap.Entries;
 import org.forgerock.opendj.ldap.Entry;
@@ -79,7 +82,7 @@
             System.exit(1);
         }
         final String host = args[0];
-        final int    port = Integer.parseInt(args[1]);
+        final int    port = parsePort(args[1]);
 
         // User credentials of a "Directory Administrators" group member.
         // Kirsten Vaughan is authorized to create, update, and delete entries.
diff --git a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/SimpleAuth.java b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/SimpleAuth.java
index df8eb2b..a7d0295 100644
--- a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/SimpleAuth.java
+++ b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/SimpleAuth.java
@@ -12,10 +12,12 @@
  * information: "Portions Copyright [year] [name of copyright owner]".
  *
  * Copyright 2011-2015 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 
 package org.forgerock.opendj.examples;
 
+import static org.forgerock.opendj.examples.ExampleUtils.parsePort;
 import static org.forgerock.opendj.ldap.LDAPConnectionFactory.*;
 
 import java.io.File;
@@ -269,7 +271,7 @@
         }
 
         host = args[0];
-        port = Integer.parseInt(args[1]);
+        port = parsePort(args[1]);
         bindDN = args[2];
         bindPassword = args[3];
 
diff --git a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/SimpleAuthAsync.java b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/SimpleAuthAsync.java
index c9e7963..7bf1d27 100644
--- a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/SimpleAuthAsync.java
+++ b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/SimpleAuthAsync.java
@@ -12,14 +12,16 @@
  * information: "Portions Copyright [year] [name of copyright owner]".
  *
  * Copyright 2015 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 
 package org.forgerock.opendj.examples;
 
+import static org.forgerock.opendj.examples.ExampleUtils.parsePort;
+import static org.forgerock.opendj.ldap.LDAPConnectionFactory.SSL_CONTEXT;
+import static org.forgerock.opendj.ldap.LDAPConnectionFactory.SSL_USE_STARTTLS;
 import static org.forgerock.opendj.ldap.TrustManagers.checkHostName;
 import static org.forgerock.util.Utils.closeSilently;
-import static org.forgerock.opendj.ldap.LDAPConnectionFactory.SSL_USE_STARTTLS;
-import static org.forgerock.opendj.ldap.LDAPConnectionFactory.SSL_CONTEXT;
 
 import org.forgerock.opendj.ldap.Connection;
 import org.forgerock.opendj.ldap.LDAPConnectionFactory;
@@ -218,7 +220,7 @@
         }
 
         host = args[0];
-        port = Integer.parseInt(args[1]);
+        port = parsePort(args[1]);
         bindDN = args[2];
         bindPassword = args[3];
 
diff --git a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/UpdateGroup.java b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/UpdateGroup.java
index 7ec596f..02c1674 100644
--- a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/UpdateGroup.java
+++ b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/UpdateGroup.java
@@ -12,10 +12,13 @@
  * information: "Portions Copyright [year] [name of copyright owner]".
  *
  * Copyright 2012-2014 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 
 package org.forgerock.opendj.examples;
 
+import static org.forgerock.opendj.examples.ExampleUtils.parsePort;
+
 import java.util.Collection;
 
 import org.forgerock.opendj.ldap.Connection;
@@ -72,7 +75,7 @@
             printUsage();
         }
         final String host = args[0];
-        final int port = Integer.parseInt(args[1]);
+        final int port = parsePort(args[1]);
         final String groupDN = args[2];
         final String memberDN = args[3];
         final ModificationType modType = getModificationType(args[4]);
diff --git a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/UpdateGroupAsync.java b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/UpdateGroupAsync.java
index d440d01..514d420 100644
--- a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/UpdateGroupAsync.java
+++ b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/UpdateGroupAsync.java
@@ -12,10 +12,13 @@
  * information: "Portions Copyright [year] [name of copyright owner]".
  *
  * Copyright 2016 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 package org.forgerock.opendj.examples;
 
+import static org.forgerock.opendj.examples.ExampleUtils.parsePort;
 import static org.forgerock.util.Utils.closeSilently;
+
 import org.forgerock.opendj.ldap.Connection;
 import org.forgerock.opendj.ldap.LDAPConnectionFactory;
 import org.forgerock.opendj.ldap.LdapException;
@@ -83,7 +86,7 @@
             printUsage();
         }
         final String host              = args[0];
-        final int port                 = Integer.parseInt(args[1]);
+        final int port                 = parsePort(args[1]);
         final String groupDn           = args[2];
         final String memberDn          = args[3];
         final ModificationType modType = getModificationType(args[4]);
diff --git a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/UseGenericControl.java b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/UseGenericControl.java
index b1a26c2..5a1d110 100644
--- a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/UseGenericControl.java
+++ b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/UseGenericControl.java
@@ -13,10 +13,13 @@
  *
  * Copyright 2009-2010 Sun Microsystems, Inc.
  * Portions Copyright 2011-2015 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 
 package org.forgerock.opendj.examples;
 
+import static org.forgerock.opendj.examples.ExampleUtils.parsePort;
+
 import org.forgerock.opendj.io.ASN1;
 import org.forgerock.opendj.io.ASN1Writer;
 import org.forgerock.opendj.ldap.ByteStringBuilder;
@@ -68,7 +71,7 @@
 
         // Parse command line arguments.
         final String hostName = args[0];
-        final int port = Integer.parseInt(args[1]);
+        final int port = parsePort(args[1]);
         final String userName = args[2];
         final String password = args[3];
         final String userDN = args[4];
diff --git a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/UseSchema.java b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/UseSchema.java
index 40d4052..d3d9706 100644
--- a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/UseSchema.java
+++ b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/UseSchema.java
@@ -12,10 +12,13 @@
  * information: "Portions Copyright [year] [name of copyright owner]".
  *
  * Copyright 2015 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 
 package org.forgerock.opendj.examples;
 
+import static org.forgerock.opendj.examples.ExampleUtils.parsePort;
+
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.opendj.ldap.Connection;
 import org.forgerock.opendj.ldap.DN;
@@ -65,7 +68,7 @@
 
         // Parse command line arguments.
         final String host         = args[0];
-        final int    port         = Integer.parseInt(args[1]);
+        final int    port         = parsePort(args[1]);
         final String bindDn       = args[2];
         final String bindPassword = args[3];
 
diff --git a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/UseSchemaAsync.java b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/UseSchemaAsync.java
index c175ba7..30f811d 100644
--- a/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/UseSchemaAsync.java
+++ b/opendj-ldap-sdk-examples/src/main/java/org/forgerock/opendj/examples/UseSchemaAsync.java
@@ -12,11 +12,14 @@
  * information: "Portions Copyright [year] [name of copyright owner]".
  *
  * Copyright 2015 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 
 package org.forgerock.opendj.examples;
 
+import static org.forgerock.opendj.examples.ExampleUtils.parsePort;
 import static org.forgerock.util.Utils.closeSilently;
+
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.opendj.ldap.Connection;
 import org.forgerock.opendj.ldap.DN;
@@ -80,7 +83,7 @@
 
         // Parse command line arguments.
         final String host         = args[0];
-        final int    port         = Integer.parseInt(args[1]);
+        final int    port         = parsePort(args[1]);
         final String bindDn       = args[2];
         final char[] bindPassword = args[3].toCharArray();
 

--
Gitblit v1.10.0