From 6f5d96325706a81a91e5bdfbdafb37a296478bf0 Mon Sep 17 00:00:00 2001 From: Robert Godfrey Date: Fri, 18 Dec 2009 16:23:19 +0000 Subject: QPID-2273 : Fix Protocol Negotiation git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@892301 13f79535-47bb-0310-9956-ffa450edef68 --- .../src/main/java/org/apache/qpid/transport/ProtocolHeader.java | 8 +++++--- .../main/java/org/apache/qpid/transport/network/InputHandler.java | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) (limited to 'qpid/java/common/src') diff --git a/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolHeader.java b/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolHeader.java index fa0c1e9c63..00ea55ff96 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolHeader.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolHeader.java @@ -39,13 +39,15 @@ public final class ProtocolHeader implements NetworkEvent, ProtocolEvent private static final byte[] AMQP = {'A', 'M', 'Q', 'P' }; private static final byte CLASS = 1; + final private byte protoClass; final private byte instance; final private byte major; final private byte minor; private int channel; - public ProtocolHeader(byte instance, byte major, byte minor) + public ProtocolHeader(byte protoClass, byte instance, byte major, byte minor) { + this.protoClass = protoClass; this.instance = instance; this.major = major; this.minor = minor; @@ -53,7 +55,7 @@ public final class ProtocolHeader implements NetworkEvent, ProtocolEvent public ProtocolHeader(int instance, int major, int minor) { - this((byte) instance, (byte) major, (byte) minor); + this(CLASS, (byte) instance, (byte) major, (byte) minor); } public byte getInstance() @@ -90,7 +92,7 @@ public final class ProtocolHeader implements NetworkEvent, ProtocolEvent { ByteBuffer buf = ByteBuffer.allocate(8); buf.put(AMQP); - buf.put(CLASS); + buf.put(protoClass); buf.put(instance); buf.put(major); buf.put(minor); diff --git a/qpid/java/common/src/main/java/org/apache/qpid/transport/network/InputHandler.java b/qpid/java/common/src/main/java/org/apache/qpid/transport/network/InputHandler.java index 2132fc2c03..a2885f97bc 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/transport/network/InputHandler.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/transport/network/InputHandler.java @@ -144,10 +144,11 @@ public class InputHandler implements Receiver return ERROR; } + byte protoClass = input.get(pos + 4); byte instance = input.get(pos + 5); byte major = input.get(pos + 6); byte minor = input.get(pos + 7); - receiver.received(new ProtocolHeader(instance, major, minor)); + receiver.received(new ProtocolHeader(protoClass, instance, major, minor)); needed = Frame.HEADER_SIZE; return FRAME_HDR; case FRAME_HDR: -- cgit v1.2.1