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

Reply via email to