Author: bago
Date: Tue Aug  1 12:37:49 2006
New Revision: 427689

URL: http://svn.apache.org/viewvc?rev=427689&view=rev
Log:
Improve the next free port acquisition algorythm trying to bind it before 
returning.

Modified:
    james/server/trunk/src/test/org/apache/james/test/util/Util.java

Modified: james/server/trunk/src/test/org/apache/james/test/util/Util.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/test/org/apache/james/test/util/Util.java?rev=427689&r1=427688&r2=427689&view=diff
==============================================================================
--- james/server/trunk/src/test/org/apache/james/test/util/Util.java (original)
+++ james/server/trunk/src/test/org/apache/james/test/util/Util.java Tue Aug  1 
12:37:49 2006
@@ -21,15 +21,29 @@
 
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.DefaultConfiguration;
-import org.apache.james.smtpserver.core.*;
-import org.apache.james.test.mock.mailet.MockMail;
+import org.apache.james.smtpserver.core.AuthCmdHandler;
+import org.apache.james.smtpserver.core.DataCmdHandler;
+import org.apache.james.smtpserver.core.EhloCmdHandler;
+import org.apache.james.smtpserver.core.ExpnCmdHandler;
+import org.apache.james.smtpserver.core.HeloCmdHandler;
+import org.apache.james.smtpserver.core.HelpCmdHandler;
+import org.apache.james.smtpserver.core.MailCmdHandler;
+import org.apache.james.smtpserver.core.QuitCmdHandler;
+import org.apache.james.smtpserver.core.RcptCmdHandler;
+import org.apache.james.smtpserver.core.RsetCmdHandler;
+import org.apache.james.smtpserver.core.SendMailHandler;
+import org.apache.james.smtpserver.core.VrfyCmdHandler;
 import org.apache.james.test.mock.javaxmail.MockMimeMessage;
+import org.apache.james.test.mock.mailet.MockMail;
 import org.apache.mailet.MailAddress;
 
+import javax.mail.MessagingException;
+import javax.mail.internet.InternetAddress;
 import javax.mail.internet.MimeMessage;
 import javax.mail.internet.ParseException;
-import javax.mail.internet.InternetAddress;
-import javax.mail.MessagingException;
+
+import java.io.IOException;
+import java.net.ServerSocket;
 import java.util.Arrays;
 
 /**
@@ -62,8 +76,20 @@
      * @return port number
      */
     protected synchronized static int getNextNonPrivilegedPort() {
-        PORT_LAST_USED++;
-        if (PORT_LAST_USED > PORT_RANGE_END) PORT_LAST_USED = PORT_RANGE_START;
+        // Hack to increase probability that the port is bindable
+        while (true) {
+            try {
+                PORT_LAST_USED++;
+                if (PORT_LAST_USED > PORT_RANGE_END) PORT_LAST_USED = 
PORT_RANGE_START;
+                ServerSocket ss;
+                ss = new ServerSocket(PORT_LAST_USED);
+                ss.close();
+                break;
+            } catch (IOException e) {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
+            }
+        }
         return PORT_LAST_USED;
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to