diff --git a/appserver/tests/appserv-tests/devtests/connector/SunRaXml/cci-embedded/ejb/CoffeeBean.java b/appserver/tests/appserv-tests/devtests/connector/SunRaXml/cci-embedded/ejb/CoffeeBean.java
index 7ea274d..a5789ea 100644
--- a/appserver/tests/appserv-tests/devtests/connector/SunRaXml/cci-embedded/ejb/CoffeeBean.java
+++ b/appserver/tests/appserv-tests/devtests/connector/SunRaXml/cci-embedded/ejb/CoffeeBean.java
@@ -58,7 +58,7 @@
             iSpec.setFunctionName("COUNTCOFFEE");
             RecordFactory rf = cf.getRecordFactory();
             IndexedRecord iRec = rf.createIndexedRecord("InputRecord");
-            Record oRec = ix.execute(iSpec, iRec);
+            jakarta.resource.cci.Record oRec = ix.execute(iSpec, iRec);
             Iterator iterator = ((IndexedRecord)oRec).iterator();
             while(iterator.hasNext()) {
                 Object obj = iterator.next();
diff --git a/appserver/tests/appserv-tests/devtests/connector/SunRaXml/cci/ejb/CoffeeBean.java b/appserver/tests/appserv-tests/devtests/connector/SunRaXml/cci/ejb/CoffeeBean.java
index e07dd2d..5cd1efb 100644
--- a/appserver/tests/appserv-tests/devtests/connector/SunRaXml/cci/ejb/CoffeeBean.java
+++ b/appserver/tests/appserv-tests/devtests/connector/SunRaXml/cci/ejb/CoffeeBean.java
@@ -17,11 +17,17 @@
 package com.sun.s1peqe.connector.cci;
 
 import java.math.BigDecimal;
-import java.util.*;
+import java.util.Iterator;
 import jakarta.ejb.*;
-import jakarta.resource.cci.*;
+import jakarta.resource.cci.Connection;
+import jakarta.resource.cci.ConnectionSpec;
+import jakarta.resource.cci.ConnectionFactory;
+import jakarta.resource.cci.IndexedRecord;
+import jakarta.resource.cci.Interaction;
+import jakarta.resource.cci.RecordFactory;
 import jakarta.resource.ResourceException;
 import javax.naming.*;
+
 import com.sun.connector.cciblackbox.*;
 
 public class CoffeeBean implements SessionBean {
@@ -38,7 +44,7 @@
     public void setSessionContext(SessionContext sc) {
         try {
             this.sc = sc;
-            Context ic = new InitialContext();
+            InitialContext ic = new InitialContext();
             user = (String) ic.lookup("java:comp/env/user");
             password = (String) ic.lookup("java:comp/env/password");
             cf = (jakarta.resource.cci.ConnectionFactory) ic.lookup("java:comp/env/eis/CCIEIS");
@@ -58,7 +64,7 @@
             iSpec.setFunctionName("COUNTCOFFEE");
             RecordFactory rf = cf.getRecordFactory();
             IndexedRecord iRec = rf.createIndexedRecord("InputRecord");
-            Record oRec = ix.execute(iSpec, iRec);
+            jakarta.resource.cci.Record oRec = ix.execute(iSpec, iRec);
             Iterator iterator = ((IndexedRecord)oRec).iterator();
             while(iterator.hasNext()) {
                 Object obj = iterator.next();
diff --git a/appserver/tests/appserv-tests/devtests/connector/config/das-config.properties b/appserver/tests/appserv-tests/devtests/connector/config/das-config.properties
index 0b87827..4d24a51 100644
--- a/appserver/tests/appserv-tests/devtests/connector/config/das-config.properties
+++ b/appserver/tests/appserv-tests/devtests/connector/config/das-config.properties
@@ -22,10 +22,10 @@
 admin.domain.dir=${env.S1AS_HOME}/domains
 activeconsumer.maxnum=1
 mail.host="ha21sca.sfbay.sun.com"
-http.port=8080
+http.port=${env.PORT_HTTP}
 http.host=localhost
 https.host=localhost
-https.port=8181
+https.port=${env.PORT_HTTPS}
 orb.port=3700
 admin.password=admin123
 master.password=admin123
diff --git a/appserver/tests/appserv-tests/devtests/connector/config/pe-config.properties b/appserver/tests/appserv-tests/devtests/connector/config/pe-config.properties
index 90e71c6..fc287c0 100644
--- a/appserver/tests/appserv-tests/devtests/connector/config/pe-config.properties
+++ b/appserver/tests/appserv-tests/devtests/connector/config/pe-config.properties
@@ -15,17 +15,17 @@
 #
 
 execution.mode=pe
-admin.port=4848
+admin.port=${env.PORT_ADMIN}
 admin.user=admin
 admin.host=localhost
 admin.domain=domain1
 admin.domain.dir=${env.S1AS_HOME}/domains
 activeconsumer.maxnum=1
 mail.host="ha21sca.sfbay.sun.com"
-http.port=8080
+http.port=${env.PORT_HTTP}
 http.host=localhost
 https.host=localhost
-https.port=8181
+https.port=${env.PORT_HTTPS}
 orb.port=3700
 admin.password=adminadmin
 master.password=changeit
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/SunRaXml/cci-embedded/client/WebTest.java b/appserver/tests/appserv-tests/devtests/connector/v3/SunRaXml/cci-embedded/client/WebTest.java
index 5cb6dad..5d10394 100644
--- a/appserver/tests/appserv-tests/devtests/connector/v3/SunRaXml/cci-embedded/client/WebTest.java
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/SunRaXml/cci-embedded/client/WebTest.java
@@ -35,7 +35,7 @@
         String portS = args[1];
         String contextRoot = args[2];
 
-        int port = new Integer(portS);
+        int port = Integer.parseInt(portS);
         String name;
 
         goGet(host, port, "TEST", contextRoot + "/SimpleServlet");
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/SunRaXml/cci-embedded/ejb/CoffeeBean.java b/appserver/tests/appserv-tests/devtests/connector/v3/SunRaXml/cci-embedded/ejb/CoffeeBean.java
index 0709b15..48a87b3 100755
--- a/appserver/tests/appserv-tests/devtests/connector/v3/SunRaXml/cci-embedded/ejb/CoffeeBean.java
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/SunRaXml/cci-embedded/ejb/CoffeeBean.java
@@ -59,7 +59,7 @@
             iSpec.setFunctionName("COUNTCOFFEE");
             RecordFactory rf = cf.getRecordFactory();
             IndexedRecord iRec = rf.createIndexedRecord("InputRecord");
-            Record oRec = ix.execute(iSpec, iRec);
+            jakarta.resource.cci.Record oRec = ix.execute(iSpec, iRec);
             Iterator iterator = ((IndexedRecord) oRec).iterator();
             while (iterator.hasNext()) {
                 Object obj = iterator.next();
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/SunRaXml/cci/client/WebTest.java b/appserver/tests/appserv-tests/devtests/connector/v3/SunRaXml/cci/client/WebTest.java
index 7de5b08..a59b299 100644
--- a/appserver/tests/appserv-tests/devtests/connector/v3/SunRaXml/cci/client/WebTest.java
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/SunRaXml/cci/client/WebTest.java
@@ -35,7 +35,7 @@
         String portS = args[1];
         String contextRoot = args[2];
 
-        int port = new Integer(portS);
+        int port = Integer.parseInt(portS);
         String name;
 
         goGet(host, port, "TEST", contextRoot + "/SimpleServlet");
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/SunRaXml/cci/ejb/CoffeeBean.java b/appserver/tests/appserv-tests/devtests/connector/v3/SunRaXml/cci/ejb/CoffeeBean.java
index c45dd70..80524ce 100755
--- a/appserver/tests/appserv-tests/devtests/connector/v3/SunRaXml/cci/ejb/CoffeeBean.java
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/SunRaXml/cci/ejb/CoffeeBean.java
@@ -17,9 +17,14 @@
 package com.sun.s1peqe.connector.cci;
 
 import java.math.BigDecimal;
-import java.util.*;
+import java.util.Iterator;
 import jakarta.ejb.*;
-import jakarta.resource.cci.*;
+import jakarta.resource.cci.Connection;
+import jakarta.resource.cci.ConnectionSpec;
+import jakarta.resource.cci.ConnectionFactory;
+import jakarta.resource.cci.IndexedRecord;
+import jakarta.resource.cci.Interaction;
+import jakarta.resource.cci.RecordFactory;
 import jakarta.resource.ResourceException;
 import javax.naming.*;
 
@@ -59,7 +64,7 @@
             iSpec.setFunctionName("COUNTCOFFEE");
             RecordFactory rf = cf.getRecordFactory();
             IndexedRecord iRec = rf.createIndexedRecord("InputRecord");
-            Record oRec = ix.execute(iSpec, iRec);
+            jakarta.resource.cci.Record oRec = ix.execute(iSpec, iRec);
             Iterator iterator = ((IndexedRecord) oRec).iterator();
             while (iterator.hasNext()) {
                 Object obj = iterator.next();
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/annotation-connector-mixedmode/app/src/client/WebTest.java b/appserver/tests/appserv-tests/devtests/connector/v3/annotation-connector-mixedmode/app/src/client/WebTest.java
index 517b439..653cef5 100644
--- a/appserver/tests/appserv-tests/devtests/connector/v3/annotation-connector-mixedmode/app/src/client/WebTest.java
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/annotation-connector-mixedmode/app/src/client/WebTest.java
@@ -35,7 +35,7 @@
         String portS = args[1];
         String contextRoot = args[2];
 
-        int port = new Integer(portS).intValue();
+        int port = Integer.parseInt(portS);
 
         goGet(host, port, "TEST", contextRoot + "/SimpleServlet");
         stat.printSummary(TEST_NAME);
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/annotation-connector1.5/app/src/client/WebTest.java b/appserver/tests/appserv-tests/devtests/connector/v3/annotation-connector1.5/app/src/client/WebTest.java
index cb8ebb0..3b5e045 100644
--- a/appserver/tests/appserv-tests/devtests/connector/v3/annotation-connector1.5/app/src/client/WebTest.java
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/annotation-connector1.5/app/src/client/WebTest.java
@@ -35,7 +35,7 @@
         String portS = args[1];
         String contextRoot = args[2];
 
-        int port = new Integer(portS).intValue();
+        int port = Integer.parseInt(portS);
         String name;
 
         goGet(host, port, "TEST", contextRoot + "/SimpleServlet");
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/app-scoped-resources-ms4-demo/app/src/client/WebTest.java b/appserver/tests/appserv-tests/devtests/connector/v3/app-scoped-resources-ms4-demo/app/src/client/WebTest.java
index 4783e5a..296e9bc 100644
--- a/appserver/tests/appserv-tests/devtests/connector/v3/app-scoped-resources-ms4-demo/app/src/client/WebTest.java
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/app-scoped-resources-ms4-demo/app/src/client/WebTest.java
@@ -35,7 +35,7 @@
         String portS = args[1];
         String contextRoot = args[2];
 
-        int port = new Integer(portS).intValue();
+        int port = Integer.parseInt(portS);
         String name;
 
         goGet(host, port, "TEST", contextRoot + "/SimpleServlet");
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/config-property-accessor-test/client/WebTest.java b/appserver/tests/appserv-tests/devtests/connector/v3/config-property-accessor-test/client/WebTest.java
index 993b4bf..c2e35ab 100644
--- a/appserver/tests/appserv-tests/devtests/connector/v3/config-property-accessor-test/client/WebTest.java
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/config-property-accessor-test/client/WebTest.java
@@ -35,7 +35,7 @@
         String portS = args[1];
         String contextRoot = args[2];
 
-        int port = Integer.valueOf(portS);
+        int port = Integer.parseInt(portS);
 
         goGet(host, port, "TEST", contextRoot + "/SimpleServlet");
         stat.printSummary(TEST_NAME);
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/connector1.5/app/src/client/WebTest.java b/appserver/tests/appserv-tests/devtests/connector/v3/connector1.5/app/src/client/WebTest.java
index 4eb1b81..3432535 100644
--- a/appserver/tests/appserv-tests/devtests/connector/v3/connector1.5/app/src/client/WebTest.java
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/connector1.5/app/src/client/WebTest.java
@@ -35,7 +35,7 @@
         String portS = args[1];
         String contextRoot = args[2];
 
-        int port = new Integer(portS).intValue();
+        int port = Integer.parseInt(portS);
         String name;
 
         goGet(host, port, "TEST", contextRoot + "/SimpleServlet");
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/connector1.6-resources-xml/app/src/client/WebTest.java b/appserver/tests/appserv-tests/devtests/connector/v3/connector1.6-resources-xml/app/src/client/WebTest.java
index b1f2bdb..e88f546 100644
--- a/appserver/tests/appserv-tests/devtests/connector/v3/connector1.6-resources-xml/app/src/client/WebTest.java
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/connector1.6-resources-xml/app/src/client/WebTest.java
@@ -35,7 +35,7 @@
         String portS = args[1];
         String contextRoot = args[2];
 
-        int port = new Integer(portS).intValue();
+        int port = Integer.parseInt(portS);
         String name;
 
         goGet(host, port, "TEST", contextRoot + "/SimpleServlet");
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/connector1.6/app/src/client/WebTest.java b/appserver/tests/appserv-tests/devtests/connector/v3/connector1.6/app/src/client/WebTest.java
index b1f2bdb..e88f546 100644
--- a/appserver/tests/appserv-tests/devtests/connector/v3/connector1.6/app/src/client/WebTest.java
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/connector1.6/app/src/client/WebTest.java
@@ -35,7 +35,7 @@
         String portS = args[1];
         String contextRoot = args[2];
 
-        int port = new Integer(portS).intValue();
+        int port = Integer.parseInt(portS);
         String name;
 
         goGet(host, port, "TEST", contextRoot + "/SimpleServlet");
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/defaultConnectorResource-standalone-rar/app/src/client/WebTest.java b/appserver/tests/appserv-tests/devtests/connector/v3/defaultConnectorResource-standalone-rar/app/src/client/WebTest.java
index bd4ad5a..c58887f 100644
--- a/appserver/tests/appserv-tests/devtests/connector/v3/defaultConnectorResource-standalone-rar/app/src/client/WebTest.java
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/defaultConnectorResource-standalone-rar/app/src/client/WebTest.java
@@ -35,7 +35,7 @@
         String portS = args[1];
         String contextRoot = args[2];
 
-        int port = new Integer(portS).intValue();
+        int port = Integer.parseInt(portS);
         String name;
 
         goGet(host, port, "TEST", contextRoot + "/SimpleServlet");
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/defaultConnectorResource/app/src/client/WebTest.java b/appserver/tests/appserv-tests/devtests/connector/v3/defaultConnectorResource/app/src/client/WebTest.java
index ed34754..5209d1c 100644
--- a/appserver/tests/appserv-tests/devtests/connector/v3/defaultConnectorResource/app/src/client/WebTest.java
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/defaultConnectorResource/app/src/client/WebTest.java
@@ -35,7 +35,7 @@
         String portS = args[1];
         String contextRoot = args[2];
 
-        int port = new Integer(portS).intValue();
+        int port = Integer.parseInt(portS);
         String name;
 
         goGet(host, port, "TEST", contextRoot + "/SimpleServlet");
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/force-deploy-rar/client/WebTest.java b/appserver/tests/appserv-tests/devtests/connector/v3/force-deploy-rar/client/WebTest.java
index fd6c34d..adeceb8 100644
--- a/appserver/tests/appserv-tests/devtests/connector/v3/force-deploy-rar/client/WebTest.java
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/force-deploy-rar/client/WebTest.java
@@ -37,7 +37,7 @@
         String versionToTest = args[3];
         versionToTest = versionToTest.trim();
 
-        int port = new Integer(portS);
+        int port = Integer.parseInt(portS);
         String name;
 
         int testVersion = Integer.valueOf(versionToTest);
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/installed-libraries-resources/client/WebTest.java b/appserver/tests/appserv-tests/devtests/connector/v3/installed-libraries-resources/client/WebTest.java
index 024c7bf..fcbeba4 100644
--- a/appserver/tests/appserv-tests/devtests/connector/v3/installed-libraries-resources/client/WebTest.java
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/installed-libraries-resources/client/WebTest.java
@@ -37,7 +37,7 @@
 
         stat.addDescription(TEST_NAME);
 
-        int port = Integer.valueOf(portS);
+        int port = Integer.parseInt(portS);
 
         goGet(host, port, "TEST", contextRoot + "/SimpleServlet");
         stat.printSummary(TEST_NAME);
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/installed-libraries/client/WebTest.java b/appserver/tests/appserv-tests/devtests/connector/v3/installed-libraries/client/WebTest.java
index 46a99ee..cdd58ed 100644
--- a/appserver/tests/appserv-tests/devtests/connector/v3/installed-libraries/client/WebTest.java
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/installed-libraries/client/WebTest.java
@@ -35,7 +35,7 @@
         String portS = args[1];
         String contextRoot = args[2];
 
-        int port = Integer.valueOf(portS);
+        int port = Integer.parseInt(portS);
 
         goGet(host, port, "TEST", contextRoot + "/SimpleServlet");
         stat.printSummary(TEST_NAME);
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/multiple-resources-app-module-scoped/app/src/client/WebTest.java b/appserver/tests/appserv-tests/devtests/connector/v3/multiple-resources-app-module-scoped/app/src/client/WebTest.java
index 718af36..ae091cb 100644
--- a/appserver/tests/appserv-tests/devtests/connector/v3/multiple-resources-app-module-scoped/app/src/client/WebTest.java
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/multiple-resources-app-module-scoped/app/src/client/WebTest.java
@@ -35,7 +35,7 @@
         String portS = args[1];
         String contextRoot = args[2];
 
-        int port = new Integer(portS).intValue();
+        int port = Integer.parseInt(portS);
         String name;
 
         goGet(host, port, "TEST", contextRoot + "/SimpleServlet");
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/multiple-resources.xml/app/src/client/WebTest.java b/appserver/tests/appserv-tests/devtests/connector/v3/multiple-resources.xml/app/src/client/WebTest.java
index 718af36..ae091cb 100644
--- a/appserver/tests/appserv-tests/devtests/connector/v3/multiple-resources.xml/app/src/client/WebTest.java
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/multiple-resources.xml/app/src/client/WebTest.java
@@ -35,7 +35,7 @@
         String portS = args[1];
         String contextRoot = args[2];
 
-        int port = new Integer(portS).intValue();
+        int port = Integer.parseInt(portS);
         String name;
 
         goGet(host, port, "TEST", contextRoot + "/SimpleServlet");
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/rar-accessibility/client/WebTest.java b/appserver/tests/appserv-tests/devtests/connector/v3/rar-accessibility/client/WebTest.java
index da59637..8b5c439 100644
--- a/appserver/tests/appserv-tests/devtests/connector/v3/rar-accessibility/client/WebTest.java
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/rar-accessibility/client/WebTest.java
@@ -36,7 +36,7 @@
         String contextRoot = args[2];
         String expectedCount = args[3];
 
-        int port = Integer.valueOf(portS);
+        int port = Integer.parseInt(portS);
 
         goGet(host, port, "TEST", contextRoot + "/SimpleServlet", expectedCount);
         stat.printSummary(TEST_NAME);
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/redeployRar/client/WebTest.java b/appserver/tests/appserv-tests/devtests/connector/v3/redeployRar/client/WebTest.java
index 7f706d5..b18c034 100644
--- a/appserver/tests/appserv-tests/devtests/connector/v3/redeployRar/client/WebTest.java
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/redeployRar/client/WebTest.java
@@ -37,7 +37,7 @@
         String versionToTest = args[3];
         versionToTest = versionToTest.trim();
 
-        int port = new Integer(portS);
+        int port = Integer.parseInt(portS);
         String name;
 
         int testVersion = Integer.valueOf(versionToTest);
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/run_test.sh b/appserver/tests/appserv-tests/devtests/connector/v3/run_test.sh
index 27a3855..5ba32e7 100755
--- a/appserver/tests/appserv-tests/devtests/connector/v3/run_test.sh
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/run_test.sh
@@ -29,7 +29,6 @@
   echo Running target: ${TARGET}
   time ant clean-all start-record ${TARGET} stop-record report | tee ${TEST_RUN_LOG}
   antStatus=${?}
-  cp connector.output tests-run.log
   ant stopDomain stopDerby
 }
 
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/securitymapweb/build.xml b/appserver/tests/appserv-tests/devtests/connector/v3/securitymapweb/build.xml
index 156f70b..91b964a 100755
--- a/appserver/tests/appserv-tests/devtests/connector/v3/securitymapweb/build.xml
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/securitymapweb/build.xml
@@ -447,6 +447,7 @@
           fork="true"
     >
       <arg line="${db.driver}" />
+      <arg line="${http.port}" />
     </java>
     <antcall target="drop-table" />
 
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/securitymapweb/client/WebTest.java b/appserver/tests/appserv-tests/devtests/connector/v3/securitymapweb/client/WebTest.java
index aa938d9..eeadf56 100755
--- a/appserver/tests/appserv-tests/devtests/connector/v3/securitymapweb/client/WebTest.java
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/securitymapweb/client/WebTest.java
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2022 Contributors to the Eclipse Foundation
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -33,7 +34,7 @@
 public class WebTest {
 
     static String host = "localhost";
-    static int port = 8080;
+    static int port;
 
     private static SimpleReporterAdapter status = new SimpleReporterAdapter();
 
@@ -44,7 +45,7 @@
     public static void main(String[] args) {
 
         driver = args[0];
-
+        port = Integer.parseInt(args[1]);
         status.addDescription("SecurityMap WebTest");
         try {
             runTests();
diff --git a/appserver/tests/appserv-tests/devtests/connector/v3/serializabletest/client/WebTest.java b/appserver/tests/appserv-tests/devtests/connector/v3/serializabletest/client/WebTest.java
index 882493d..2e682db 100644
--- a/appserver/tests/appserv-tests/devtests/connector/v3/serializabletest/client/WebTest.java
+++ b/appserver/tests/appserv-tests/devtests/connector/v3/serializabletest/client/WebTest.java
@@ -35,7 +35,7 @@
         String portS = args[1];
         String contextRoot = args[2];
 
-        int port = new Integer(portS).intValue();
+        int port = Integer.parseInt(portS);
         String name;
 
         goGet(host, port, "TEST", contextRoot + "/SimpleServlet");
