You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by an...@apache.org on 2014/12/02 11:29:00 UTC

tomee git commit: Using 0 for system allocated port means forcing a ServerSocket call

Repository: tomee
Updated Branches:
  refs/heads/tomee-1.7.x 0115555c8 -> 987b71b83


Using 0 for system allocated port means forcing a ServerSocket call


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/987b71b8
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/987b71b8
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/987b71b8

Branch: refs/heads/tomee-1.7.x
Commit: 987b71b83dcb69cdd57960b7834d76ed27fcb292
Parents: 0115555
Author: andygumbrecht <an...@apache.org>
Authored: Tue Dec 2 11:28:15 2014 +0100
Committer: andygumbrecht <an...@apache.org>
Committed: Tue Dec 2 11:28:15 2014 +0100

----------------------------------------------------------------------
 .../java/org/apache/openejb/util/NetworkUtil.java   | 16 ++++++++++++----
 .../org/apache/openejb/util/NetworkUtilTest.java    |  2 +-
 2 files changed, 13 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/987b71b8/container/openejb-core/src/main/java/org/apache/openejb/util/NetworkUtil.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/util/NetworkUtil.java b/container/openejb-core/src/main/java/org/apache/openejb/util/NetworkUtil.java
index 7feef7e..dc0a04e 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/util/NetworkUtil.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/util/NetworkUtil.java
@@ -185,17 +185,25 @@ public final class NetworkUtil {
 
     private static ServerSocket create(final int[] ports, final Collection<LastPort> lastPort) throws IOException {
 
-        for (final int port : ports) {
+        for (int port : ports) {
             try {
+
+                final ServerSocket ss = new ServerSocket(port);
+                port = ss.getLocalPort();
+
                 final LastPort lp = new LastPort(port, System.currentTimeMillis());
+
                 if (lastPort != null) {
-                    if (lastPort.contains(lp)) { // actually doesn't mean much things excepted "it has been locked recently"
+                    if (lastPort.contains(lp)) {
+                        try {
+                            ss.close();
+                        } catch (final Exception e) {
+                            //Ignore
+                        }
                         continue;
                     }
                 }
 
-                final ServerSocket ss = new ServerSocket(port);
-
                 if (!checkLockFile(port)) {
                     try {
                         ss.close();

http://git-wip-us.apache.org/repos/asf/tomee/blob/987b71b8/container/openejb-core/src/test/java/org/apache/openejb/util/NetworkUtilTest.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/test/java/org/apache/openejb/util/NetworkUtilTest.java b/container/openejb-core/src/test/java/org/apache/openejb/util/NetworkUtilTest.java
index 98de662..c64889f 100644
--- a/container/openejb-core/src/test/java/org/apache/openejb/util/NetworkUtilTest.java
+++ b/container/openejb-core/src/test/java/org/apache/openejb/util/NetworkUtilTest.java
@@ -62,7 +62,7 @@ public class NetworkUtilTest {
         for (int i = 0; i < count; i++) {
             final Thread thread = new Thread(new Runnable() {
                 public void run() {
-                    final int nextAvailablePort = NetworkUtil.getNextAvailablePort(NetworkUtil.PORT_MIN, NetworkUtil.PORT_MAX, Collections.<Integer>emptyList(), lastPorts);
+                    final int nextAvailablePort = NetworkUtil.getNextAvailablePort();
                     if (list.contains(nextAvailablePort)) {
                         if ((System.currentTimeMillis() - start) < 10000) {
                             Assert.fail("Got a duplicate port with ten seconds");