From 05b3483a34c8aeee85f7cf92f37c97558a25497b Mon Sep 17 00:00:00 2001 From: Martin Ritchie Date: Tue, 2 Dec 2008 23:25:58 +0000 Subject: QPID-1499 : Modification to IoAcceptor so ConnectionTest can close the open SocketServer. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@722669 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/qpid/transport/network/io/IoAcceptor.java | 11 +++++++++++ .../java/org/apache/qpid/transport/ConnectionTest.java | 16 ++++++++++------ 2 files changed, 21 insertions(+), 6 deletions(-) (limited to 'java') diff --git a/java/common/src/main/java/org/apache/qpid/transport/network/io/IoAcceptor.java b/java/common/src/main/java/org/apache/qpid/transport/network/io/IoAcceptor.java index c3ec03a624..8530240dcc 100644 --- a/java/common/src/main/java/org/apache/qpid/transport/network/io/IoAcceptor.java +++ b/java/common/src/main/java/org/apache/qpid/transport/network/io/IoAcceptor.java @@ -56,6 +56,17 @@ public class IoAcceptor extends Thread setName(String.format("IoAcceptor - %s", socket.getInetAddress())); } + /** + Close the underlying ServerSocket if it has not already been closed. + */ + public void close() throws IOException + { + if (!socket.isClosed()) + { + socket.close(); + } + } + public IoAcceptor(String host, int port, Binding binding) throws IOException { diff --git a/java/common/src/test/java/org/apache/qpid/transport/ConnectionTest.java b/java/common/src/test/java/org/apache/qpid/transport/ConnectionTest.java index ebb8e49e77..8d3e363fdd 100644 --- a/java/common/src/test/java/org/apache/qpid/transport/ConnectionTest.java +++ b/java/common/src/test/java/org/apache/qpid/transport/ConnectionTest.java @@ -26,7 +26,6 @@ import org.apache.qpid.util.concurrent.Condition; import org.apache.qpid.transport.network.ConnectionBinding; import org.apache.qpid.transport.network.io.IoAcceptor; -import org.apache.qpid.transport.network.io.IoTransport; import org.apache.qpid.transport.util.Logger; import org.apache.qpid.transport.util.Waiter; @@ -34,7 +33,6 @@ import junit.framework.TestCase; import java.util.ArrayList; import java.util.List; -import java.util.Random; import java.util.Collections; import java.io.IOException; @@ -52,12 +50,20 @@ public class ConnectionTest extends TestCase implements SessionListener private List messages = new ArrayList(); private List incoming = new ArrayList(); + private IoAcceptor _ioa = null; + + protected void setUp() throws Exception { super.setUp(); port = AvailablePortFinder.getNextAvailable(12000); + } + protected void tearDown() throws Exception + { + _ioa.close(); + super.tearDown(); } public void opened(Session ssn) {} @@ -206,11 +212,9 @@ public class ConnectionTest extends TestCase implements SessionListener } }; - IoAcceptor ioa = null; try { - ioa = new IoAcceptor - ("localhost", port, ConnectionBinding.get(server)); + _ioa = new IoAcceptor("localhost", port, ConnectionBinding.get(server)); } catch (IOException e) { @@ -218,7 +222,7 @@ public class ConnectionTest extends TestCase implements SessionListener fail("Unable to start Server for test due to:" + e.getMessage()); } - ioa.start(); + _ioa.start(); } public void testClosedNotificationAndWriteToClosed() throws Exception -- cgit v1.2.1