diff options
author | Robert Godfrey <rgodfrey@apache.org> | 2009-11-26 16:14:19 +0000 |
---|---|---|
committer | Robert Godfrey <rgodfrey@apache.org> | 2009-11-26 16:14:19 +0000 |
commit | d37f3ad0906b4ff7742e2853204da4ef333eb1f9 (patch) | |
tree | 9bd8e9e21e4fa0a710822cb31f8e866b49399f00 /qpid/java | |
parent | 24bae74ca6972d0b127e9e576de43c6be9cf138d (diff) | |
download | qpid-python-d37f3ad0906b4ff7742e2853204da4ef333eb1f9.tar.gz |
Fixes for 0-9-1 support
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@884619 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
5 files changed, 28 insertions, 12 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/QueueUnbindHandler.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/QueueUnbindHandler.java index d4272239d1..31401ce9d9 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/QueueUnbindHandler.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/QueueUnbindHandler.java @@ -78,7 +78,7 @@ public class QueueUnbindHandler implements StateAwareMethodListener<QueueUnbindB if (queue == null) { - throw body.getConnectionException(AMQConstant.NOT_FOUND, "No default queue defined on channel and queue was null"); + throw body.getChannelException(AMQConstant.NOT_FOUND, "No default queue defined on channel and queue was null"); } routingKey = body.getRoutingKey() == null ? null : body.getRoutingKey().intern(); @@ -92,7 +92,7 @@ public class QueueUnbindHandler implements StateAwareMethodListener<QueueUnbindB if (queue == null) { - throw body.getConnectionException(AMQConstant.NOT_FOUND, "Queue " + body.getQueue() + " does not exist."); + throw body.getChannelException(AMQConstant.NOT_FOUND, "Queue " + body.getQueue() + " does not exist."); } final Exchange exch = exchangeRegistry.getExchange(body.getExchange()); if (exch == null) @@ -118,7 +118,7 @@ public class QueueUnbindHandler implements StateAwareMethodListener<QueueUnbindB { if(e.getErrorCode() == AMQConstant.NOT_FOUND) { - throw body.getConnectionException(AMQConstant.NOT_FOUND,e.getMessage(),e); + throw body.getChannelException(AMQConstant.NOT_FOUND,e.getMessage(),e); } throw body.getChannelException(AMQConstant.CHANNEL_ERROR, e.toString()); } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java index 04b3e75f8c..0824d12416 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java @@ -341,7 +341,7 @@ public class AMQProtocolEngine implements ProtocolEngine, Managable, AMQProtocol String locales = "en_US"; AMQMethodBody responseBody = getMethodRegistry().createConnectionStartBody((short) getProtocolMajorVersion(), - (short) getProtocolMinorVersion(), + (short) pv.getActualMinorVersion(), null, mechanisms.getBytes(), locales.getBytes()); diff --git a/qpid/java/common/src/main/java/org/apache/qpid/AMQConnectionException.java b/qpid/java/common/src/main/java/org/apache/qpid/AMQConnectionException.java index afd415b1eb..8ef6facef1 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/AMQConnectionException.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/AMQConnectionException.java @@ -60,7 +60,7 @@ public class AMQConnectionException extends AMQException public AMQFrame getCloseFrame(int channel) { MethodRegistry reg = MethodRegistry.getMethodRegistry(new ProtocolVersion(major,minor)); - return new AMQFrame(channel, + return new AMQFrame(0, reg.createConnectionCloseBody(getErrorCode().getCode(), new AMQShortString(getMessage()), _classId, diff --git a/qpid/java/common/src/main/java/org/apache/qpid/framing/ProtocolInitiation.java b/qpid/java/common/src/main/java/org/apache/qpid/framing/ProtocolInitiation.java index d503ed7ea3..ac21fe4243 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/framing/ProtocolInitiation.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/framing/ProtocolInitiation.java @@ -54,7 +54,8 @@ public class ProtocolInitiation extends AMQDataBlock implements EncodableAMQData public ProtocolInitiation(ProtocolVersion pv) { - this(AMQP_HEADER, CURRENT_PROTOCOL_CLASS, + this(AMQP_HEADER, + pv.equals(ProtocolVersion.v0_91) ? 0 : CURRENT_PROTOCOL_CLASS, pv.equals(ProtocolVersion.v0_91) ? 0 : TCP_PROTOCOL_INSTANCE, pv.equals(ProtocolVersion.v0_91) ? 9 : pv.getMajorVersion(), pv.equals(ProtocolVersion.v0_91) ? 1 : pv.getMinorVersion()); @@ -159,11 +160,6 @@ public class ProtocolInitiation extends AMQDataBlock implements EncodableAMQData } } } - if (_protocolClass != CURRENT_PROTOCOL_CLASS) - { - throw new AMQProtocolClassException("Protocol class " + CURRENT_PROTOCOL_CLASS + " was expected; received " + - _protocolClass, null); - } ProtocolVersion pv; @@ -171,7 +167,16 @@ public class ProtocolInitiation extends AMQDataBlock implements EncodableAMQData if(_protocolInstance == 0 && _protocolMajor == 9 && _protocolMinor == 1) { pv = ProtocolVersion.v0_91; - + if (_protocolClass != 0) + { + throw new AMQProtocolClassException("Protocol class " + 0 + " was expected; received " + + _protocolClass, null); + } + } + else if (_protocolClass != CURRENT_PROTOCOL_CLASS) + { + throw new AMQProtocolClassException("Protocol class " + CURRENT_PROTOCOL_CLASS + " was expected; received " + + _protocolClass, null); } else if (_protocolInstance != TCP_PROTOCOL_INSTANCE) { diff --git a/qpid/java/common/templates/model/ProtocolVersionListClass.vm b/qpid/java/common/templates/model/ProtocolVersionListClass.vm index d3e943e36f..110342647e 100644 --- a/qpid/java/common/templates/model/ProtocolVersionListClass.vm +++ b/qpid/java/common/templates/model/ProtocolVersionListClass.vm @@ -61,6 +61,17 @@ public class ProtocolVersion implements Comparable return _minorVersion; } + public byte getActualMinorVersion() + { + return _minorVersion > 90 ? (byte) (_minorVersion / 10) : _minorVersion; + } + + + public byte getRevisionVersion() + { + return _minorVersion > 90 ? (byte) (_minorVersion % 10) : (byte) 0; + } + public String toString() { return _stringFormat; |