Repository: qpid-jms Updated Branches: refs/heads/master fd0081e2e -> b7f7ac5ab
Fix up close and add a test Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/b7f7ac5a Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/b7f7ac5a Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/b7f7ac5a Branch: refs/heads/master Commit: b7f7ac5aba2590fc8da1163a453f59ca1bb61c92 Parents: fd0081e Author: Timothy Bish <tabish...@gmail.com> Authored: Thu Jan 8 18:18:13 2015 -0500 Committer: Timothy Bish <tabish...@gmail.com> Committed: Thu Jan 8 18:18:13 2015 -0500 ---------------------------------------------------------------------- .../jms/transports/netty/NettyTcpTransport.java | 9 ++++-- .../jms/test/netty/NettyTcpTransportTest.java | 32 ++++++++++++++++++++ 2 files changed, 39 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/b7f7ac5a/qpid-jms-client/src/main/java/org/apache/qpid/jms/transports/netty/NettyTcpTransport.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/transports/netty/NettyTcpTransport.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/transports/netty/NettyTcpTransport.java index 366b643..03db5ed 100644 --- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/transports/netty/NettyTcpTransport.java +++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/transports/netty/NettyTcpTransport.java @@ -131,8 +131,13 @@ public class NettyTcpTransport implements Transport { @Override public void close() throws IOException { if (closed.compareAndSet(false, true)) { - channel.close(); - group.shutdownGracefully(); + connected.set(false); + if (channel != null) { + channel.close(); + } + if (group != null) { + group.shutdownGracefully(); + } } } http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/b7f7ac5a/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/netty/NettyTcpTransportTest.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/netty/NettyTcpTransportTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/netty/NettyTcpTransportTest.java index 34999b0..7e1e497 100644 --- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/netty/NettyTcpTransportTest.java +++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/netty/NettyTcpTransportTest.java @@ -23,6 +23,7 @@ import static org.junit.Assert.fail; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; +import java.io.IOException; import java.net.URI; import java.util.ArrayList; import java.util.List; @@ -208,6 +209,37 @@ public class NettyTcpTransportTest extends QpidJmsTestCase { assertTrue(exceptions.isEmpty()); } + @Test(timeout = 60 * 1000) + public void testSendToClosedTransportFails() throws Exception { + NettyTcpTransport transport = null; + + try (NettyEchoServer server = new NettyEchoServer()) { + server.start(); + + int port = server.getServerPort(); + URI serverLocation = new URI("tcp://localhost:" + port); + + transport = new NettyTcpTransport(testListener, serverLocation, testOptions); + try { + transport.connect(); + LOG.info("Connected to test server."); + } catch (Exception e) { + fail("Should have connected to the server"); + } + + assertTrue(transport.isConnected()); + + transport.close(); + + ByteBuf sendBuffer = Unpooled.buffer(10); + try { + transport.send(sendBuffer); + fail("Should throw on send of closed transport"); + } catch (IOException ex) { + } + } + } + private class NettyTransportListener implements TransportListener { @Override --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org