From f871676f6fc480bda7abc5f6ff4891529af5945b Mon Sep 17 00:00:00 2001 From: Robert Godfrey Date: Fri, 31 Oct 2014 20:17:17 +0000 Subject: QPID-6206 : [Java Client] create new AMQDecoder for every reconnection attempt git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1635855 13f79535-47bb-0310-9956-ffa450edef68 --- .../java/org/apache/qpid/client/AMQConnectionDelegate_8_0.java | 3 ++- .../java/org/apache/qpid/client/protocol/AMQProtocolHandler.java | 8 +++++++- 2 files changed, 9 insertions(+), 2 deletions(-) (limited to 'qpid/java/client') diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_8_0.java b/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_8_0.java index bcf0721aab..33c55ce922 100644 --- a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_8_0.java +++ b/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_8_0.java @@ -143,7 +143,8 @@ public class AMQConnectionDelegate_8_0 implements AMQConnectionDelegate _conn.getProtocolHandler().setNetworkConnection(network, securityLayer.sender(network.getSender())); StateWaiter waiter = _conn.getProtocolHandler().createWaiter(openOrClosedStates); - _conn.getProtocolHandler().getProtocolSession().init(settings); + _conn.getProtocolHandler().init(settings); + // this blocks until the connection has been set up or when an error // has prevented the connection being set up diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java b/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java index 4886eabb90..c61469559a 100644 --- a/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java +++ b/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java @@ -66,6 +66,7 @@ import org.apache.qpid.protocol.AMQMethodEvent; import org.apache.qpid.protocol.AMQMethodListener; import org.apache.qpid.protocol.ProtocolEngine; import org.apache.qpid.thread.Threading; +import org.apache.qpid.transport.ConnectionSettings; import org.apache.qpid.transport.Sender; import org.apache.qpid.transport.TransportException; import org.apache.qpid.transport.network.NetworkConnection; @@ -194,7 +195,6 @@ public class AMQProtocolHandler implements ProtocolEngine _connection = con; _protocolSession = new AMQProtocolSession(this, _connection); _stateManager = new AMQStateManager(_protocolSession); - _decoder = new ClientDecoder(_protocolSession.getMethodProcessor()); _failoverHandler = new FailoverHandler(this); } @@ -958,4 +958,10 @@ public class AMQProtocolHandler implements ProtocolEngine { _decoder.setMaxFrameSize(frameMax == 0l || frameMax > (long) Integer.MAX_VALUE ? Integer.MAX_VALUE : (int) frameMax); } + + public void init(final ConnectionSettings settings) + { + _decoder = new ClientDecoder(_protocolSession.getMethodProcessor()); + _protocolSession.init(settings); + } } -- cgit v1.2.1