summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2009-11-26 16:14:19 +0000
committerRobert Godfrey <rgodfrey@apache.org>2009-11-26 16:14:19 +0000
commitd37f3ad0906b4ff7742e2853204da4ef333eb1f9 (patch)
tree9bd8e9e21e4fa0a710822cb31f8e866b49399f00
parent24bae74ca6972d0b127e9e576de43c6be9cf138d (diff)
downloadqpid-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
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/handler/QueueUnbindHandler.java6
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java2
-rw-r--r--qpid/java/common/src/main/java/org/apache/qpid/AMQConnectionException.java2
-rw-r--r--qpid/java/common/src/main/java/org/apache/qpid/framing/ProtocolInitiation.java19
-rw-r--r--qpid/java/common/templates/model/ProtocolVersionListClass.vm11
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;