summaryrefslogtreecommitdiff
path: root/qpid/java
diff options
context:
space:
mode:
authorRobert Gemmell <robbie@apache.org>2012-02-15 22:35:53 +0000
committerRobert Gemmell <robbie@apache.org>2012-02-15 22:35:53 +0000
commitd83b7228efd9d6364683f3670c5d7e58d5c39b9a (patch)
tree4f19fc8016fe79ece2efe5f2eb09b78ff32e5b64 /qpid/java
parent37d762898624deb99809d609084dc0bbd20dce3a (diff)
downloadqpid-python-d83b7228efd9d6364683f3670c5d7e58d5c39b9a.tar.gz
QPID-3848: relax the enforcement of exchange type checking during passive exchange-declares to allow empty/null values
Applied patch by Gordon Sim git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1244771 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ExchangeDeclareHandler.java2
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java2
2 files changed, 2 insertions, 2 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ExchangeDeclareHandler.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ExchangeDeclareHandler.java
index 9165b4936e..81e2e5557a 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ExchangeDeclareHandler.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ExchangeDeclareHandler.java
@@ -101,7 +101,7 @@ public class ExchangeDeclareHandler implements StateAwareMethodListener<Exchange
}
}
}
- else if (!exchange.getTypeShortString().equals(body.getType()))
+ else if (!exchange.getTypeShortString().equals(body.getType()) && !((body.getType() == null || body.getType().length() ==0) && body.getPassive()))
{
throw new AMQConnectionException(AMQConstant.NOT_ALLOWED, "Attempt to redeclare exchange: " + body.getExchange() + " of type " + exchange.getTypeShortString() + " to " + body.getType() +".",body.getClazz(), body.getMethod(),body.getMajor(),body.getMinor(),null);
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java
index c828ea4843..8e4fb3635b 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java
@@ -463,7 +463,7 @@ public class ServerSessionDelegate extends SessionDelegate
}
else
{
- if(!exchange.getTypeShortString().toString().equals(method.getType()))
+ if(!exchange.getTypeShortString().toString().equals(method.getType()) && (method.getType() != null && method.getType().length() > 0))
{
exception(session, method, ExecutionErrorCode.NOT_ALLOWED, "Attempt to redeclare exchange: " + exchangeName + " of type " + exchange.getTypeShortString() + " to " + method.getType() +".");
}