You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2007/10/22 23:06:24 UTC

svn commit: r587253 - in /incubator/cxf/branches/2.0.x-fixes: ./ systests/src/test/java/org/apache/cxf/systest/http_jetty/EngineLifecycleTest.java

Author: dkulp
Date: Mon Oct 22 14:06:24 2007
New Revision: 587253

URL: http://svn.apache.org/viewvc?rev=587253&view=rev
Log:
Merged revisions 586917 via svnmerge from 
https://svn.apache.org/repos/asf/incubator/cxf/trunk

........
  r586917 | bimargulies | 2007-10-21 13:10:23 -0400 (Sun, 21 Oct 2007) | 3 lines
  
  The server socket might be null when we go to turn on reuse address. I don't know why, but that's 
  apparently just how Jetty works.
........

Modified:
    incubator/cxf/branches/2.0.x-fixes/   (props changed)
    incubator/cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/http_jetty/EngineLifecycleTest.java

Propchange: incubator/cxf/branches/2.0.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: incubator/cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/http_jetty/EngineLifecycleTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/http_jetty/EngineLifecycleTest.java?rev=587253&r1=587252&r2=587253&view=diff
==============================================================================
--- incubator/cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/http_jetty/EngineLifecycleTest.java (original)
+++ incubator/cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/http_jetty/EngineLifecycleTest.java Mon Oct 22 14:06:24 2007
@@ -20,12 +20,15 @@
 
 import java.io.File;
 import java.io.FileInputStream;
+import java.io.IOException;
 import java.io.InputStream;
 import java.net.HttpURLConnection;
+import java.net.InetAddress;
 import java.net.ServerSocket;
-import java.net.SocketException;
+import java.net.Socket;
 import java.net.URL;
 import java.net.URLConnection;
+import java.net.UnknownHostException;
 import java.util.Properties;
 
 
@@ -41,6 +44,7 @@
 import org.junit.Assert;
 import org.junit.Ignore;
 import org.junit.Test;
+import org.mortbay.jetty.Connector;
 import org.mortbay.jetty.Handler;
 import org.mortbay.jetty.webapp.WebAppContext;
 import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
@@ -164,7 +168,7 @@
         shutdownService();
     }
     
-    private void setReuseAddrForServer(int port) throws SocketException {
+    private void setReuseAddrForServer(int port) throws IOException {
         Bus bus = (Bus)applicationContext.getBean("cxf");
         boolean turnedOnReuseAddr = false;
         ServerRegistry sr = bus.getExtension(ServerRegistry.class);
@@ -172,8 +176,11 @@
             ServerImpl si = (ServerImpl) server;
             JettyHTTPDestination jhd = (JettyHTTPDestination) si.getDestination();
             JettyHTTPServerEngine e = (JettyHTTPServerEngine) jhd.getEngine();
-            if (e.getConnector().getPort() == port) {
-                ServerSocket socket = (ServerSocket)e.getConnector().getConnection();
+            Connector connector = e.getConnector();
+            if (connector.getPort() == port) {
+                connector.open();  // it might not be opened. 
+                ServerSocket socket = (ServerSocket)connector.getConnection();
+                assertNotNull("connector must have socket", socket);
                 socket.setReuseAddress(true);
                 turnedOnReuseAddr = true;
             }
@@ -181,6 +188,19 @@
         assertTrue(turnedOnReuseAddr); // insure that we actually found the server for 8801 and did the deed.
         
     }
+    
+    private void verifyNoServer(int port) {
+        try {
+            Socket socket = new Socket(InetAddress.getLocalHost(), port);
+            socket.close();
+        } catch (UnknownHostException e) {
+            fail("Unknown host for local address");
+        } catch (IOException e) {
+            return; // this is what we want.
+        }
+        fail("Server on port " + port + " accepted a connection.");
+        
+    }
 
     /**
      * 
@@ -195,6 +215,8 @@
         invokeService();    
         invokeService8801();
         shutdownService();
+        verifyNoServer(8808);
+        verifyNoServer(8801);
 
         setUpBus(true);
         setReuseAddrForServer(8801);
@@ -204,6 +226,9 @@
         getTestHtml();
         
         shutdownService();
+        verifyNoServer(8808);
+        verifyNoServer(8801);
+
     }
 
 }