summaryrefslogtreecommitdiff
path: root/java/client/src/main
diff options
context:
space:
mode:
authorMartin Ritchie <ritchiem@apache.org>2010-01-20 19:21:16 +0000
committerMartin Ritchie <ritchiem@apache.org>2010-01-20 19:21:16 +0000
commitdd8078e03108bd9c9f602c82f396511927d05cc7 (patch)
treef1c40ff2fa18b31e0d44cb5dabc1cc9b1a02c205 /java/client/src/main
parentcd3166280e53b8587d4d257b7898577b65edc0b7 (diff)
downloadqpid-python-dd8078e03108bd9c9f602c82f396511927d05cc7.tar.gz
QPID-2349 : Fixed Protocol Version negotiation. The Negotiated protocol version was not given to the ProtocolSession.
Once this is done the correct delegate is enabled on connection. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@901341 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/client/src/main')
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/AMQConnection.java13
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java1
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolSession.java2
3 files changed, 14 insertions, 2 deletions
diff --git a/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java b/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java
index ef09d36ee5..125cb6cae3 100644
--- a/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java
+++ b/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java
@@ -516,6 +516,8 @@ public class AMQConnection extends Closeable implements Connection, QueueConnect
_protocolHandler = new AMQProtocolHandler(this);
+ _logger.info("Connecting with ProtocolHandler Version:"+_protocolHandler.getProtocolVersion());
+
// We are not currently connected
_connected = false;
@@ -552,6 +554,8 @@ public class AMQConnection extends Closeable implements Connection, QueueConnect
}
}
+ _logger.info("Connected with ProtocolHandler Version:"+_protocolHandler.getProtocolVersion());
+
if (_logger.isDebugEnabled())
{
_logger.debug("Are we connected:" + _connected);
@@ -619,13 +623,18 @@ public class AMQConnection extends Closeable implements Connection, QueueConnect
{
try
{
- Class c = Class.forName(String.format
+ String delegateClassName = String.format
("org.apache.qpid.client.AMQConnectionDelegate_%s_%s",
- pe.getMajorVersion(), pe.getMinorVersion()));
+ pe.getMajorVersion(), pe.getMinorVersion());
+ _logger.info("Looking up delegate '" + delegateClassName + "' Based on PE:" + pe);
+ Class c = Class.forName(delegateClassName);
Class partypes[] = new Class[1];
partypes[0] = AMQConnection.class;
_delegate = (AMQConnectionDelegate) c.getConstructor(partypes).newInstance(this);
_sessions.setMaxChannelID(_delegate.getMaxChannelID());
+ //Update our session to use this new protocol version
+ _protocolHandler.getProtocolSession().setProtocolVersion(_delegate.getProtocolVersion());
+
}
catch (ClassNotFoundException e)
{
diff --git a/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java b/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java
index a567c2c215..f8012d044a 100644
--- a/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java
+++ b/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java
@@ -470,6 +470,7 @@ public class AMQProtocolHandler implements ProtocolEngine
// connection.
ProtocolInitiation protocolInit = (ProtocolInitiation) message;
_suggestedProtocolVersion = protocolInit.checkVersion();
+ _logger.info("Broker suggested using protocol version:" + _suggestedProtocolVersion);
// get round a bug in old versions of qpid whereby the connection is not closed
_stateManager.changeState(AMQState.CONNECTION_CLOSED);
diff --git a/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolSession.java b/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolSession.java
index 2d59146b43..318e9fea4c 100644
--- a/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolSession.java
+++ b/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolSession.java
@@ -104,6 +104,7 @@ public class AMQProtocolSession implements AMQVersionAwareProtocolSession
{
_protocolHandler = protocolHandler;
_protocolVersion = connection.getProtocolVersion();
+ _logger.info("Using ProtocolVersion for Session:" + _protocolVersion);
_methodDispatcher = ClientMethodDispatcherImpl.newMethodDispatcher(ProtocolVersion.getLatestSupportedVersion(),
this);
_connection = connection;
@@ -400,6 +401,7 @@ public class AMQProtocolSession implements AMQVersionAwareProtocolSession
public void setProtocolVersion(final ProtocolVersion pv)
{
+ _logger.info("Setting ProtocolVersion to :" + pv);
_protocolVersion = pv;
_methodRegistry = MethodRegistry.getMethodRegistry(pv);
_methodDispatcher = ClientMethodDispatcherImpl.newMethodDispatcher(pv, this);