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]