Author: tveronezi
Date: Thu Nov 28 18:13:28 2013
New Revision: 1546429

URL: http://svn.apache.org/r1546429
Log:
Retry connection after 10 seconds in case of failure.
Slow machines (like mine. :) ) may not have a chance to startup derby before 
que connection request.

Modified:
    
tomee/tomee/trunk/server/openejb-derbynet/src/test/java/org/apache/openejb/server/derbynet/DerbyNetworkServiceTest.java

Modified: 
tomee/tomee/trunk/server/openejb-derbynet/src/test/java/org/apache/openejb/server/derbynet/DerbyNetworkServiceTest.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-derbynet/src/test/java/org/apache/openejb/server/derbynet/DerbyNetworkServiceTest.java?rev=1546429&r1=1546428&r2=1546429&view=diff
==============================================================================
--- 
tomee/tomee/trunk/server/openejb-derbynet/src/test/java/org/apache/openejb/server/derbynet/DerbyNetworkServiceTest.java
 (original)
+++ 
tomee/tomee/trunk/server/openejb-derbynet/src/test/java/org/apache/openejb/server/derbynet/DerbyNetworkServiceTest.java
 Thu Nov 28 18:13:28 2013
@@ -16,13 +16,16 @@
  */
 package org.apache.openejb.server.derbynet;
 
+
 import org.apache.openejb.server.ServerService;
 import org.apache.openejb.server.ServiceFinder;
 import org.apache.openejb.server.SimpleServiceManager;
 import org.apache.openejb.util.NetworkUtil;
+import org.junit.Assert;
 import org.junit.Test;
 
 import java.io.IOException;
+import java.net.ConnectException;
 import java.net.Socket;
 import java.util.HashMap;
 import java.util.Map;
@@ -33,6 +36,22 @@ import java.util.Properties;
  */
 public class DerbyNetworkServiceTest {
 
+    private static final long RETRY_TIMEOUT = 10000;
+
+    private void connectSocket(int port) {
+        try {
+            try {
+                new Socket("localhost", port);
+            } catch (ConnectException e) {
+                // OK it didn't fully started yet. Wait a bit and try it again.
+                Thread.sleep(RETRY_TIMEOUT);
+                new Socket("localhost", port);
+            }
+        } catch (Exception e) {
+            Assert.fail("Impossible to connect using port\"" + port + "\". 
Message: " + e.getMessage());
+        }
+    }
+
     @Test
     public void test() throws Exception {
         final int port = NetworkUtil.getNextAvailablePort();
@@ -53,9 +72,7 @@ public class DerbyNetworkServiceTest {
 
         serviceManager.init();
         serviceManager.start(false);
-
-        final Socket derbyClient = new Socket("localhost", port);
-
+        connectSocket(port);
         serviceManager.stop();
     }
 }


Reply via email to