diff options
Diffstat (limited to 'java/common/src')
| -rw-r--r-- | java/common/src/main/java/org/apache/qpid/transport/network/io/IoAcceptor.java | 11 | ||||
| -rw-r--r-- | java/common/src/test/java/org/apache/qpid/transport/ConnectionTest.java | 16 |
2 files changed, 21 insertions, 6 deletions
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<E> 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<E,ByteBuffer> 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<MessageTransfer> messages = new ArrayList<MessageTransfer>(); private List<MessageTransfer> incoming = new ArrayList<MessageTransfer>(); + 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 |
