You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ta...@apache.org on 2015/01/09 00:18:19 UTC
qpid-jms git commit: Fix up close and add a test
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 <ta...@gmail.com>
Authored: Thu Jan 8 18:18:13 2015 -0500
Committer: Timothy Bish <ta...@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-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org