You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by bi...@apache.org on 2007/10/21 19:10:24 UTC
svn commit: r586917 -
/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/http_jetty/EngineLifecycleTest.java
Author: bimargulies
Date: Sun Oct 21 10:10:23 2007
New Revision: 586917
URL: http://svn.apache.org/viewvc?rev=586917&view=rev
Log:
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/trunk/systests/src/test/java/org/apache/cxf/systest/http_jetty/EngineLifecycleTest.java
Modified: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/http_jetty/EngineLifecycleTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/http_jetty/EngineLifecycleTest.java?rev=586917&r1=586916&r2=586917&view=diff
==============================================================================
--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/http_jetty/EngineLifecycleTest.java (original)
+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/http_jetty/EngineLifecycleTest.java Sun Oct 21 10:10:23 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);
+
}
}