summaryrefslogtreecommitdiff
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
commit52442bd04f451e46610d7d5161d76bce199c2345 (patch)
tree247f063835e8dc64b28e3ac4a09188f1a2d60c1e
parent1302559acd97ca9f70d2cd2cb1efc13ed7b2d03d (diff)
downloadqpid-python-52442bd04f451e46610d7d5161d76bce199c2345.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/qpid@1244771 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/handler/ExchangeDeclareHandler.java2
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java2
2 files changed, 2 insertions, 2 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/handler/ExchangeDeclareHandler.java b/java/broker/src/main/java/org/apache/qpid/server/handler/ExchangeDeclareHandler.java
index 9165b4936e..81e2e5557a 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/handler/ExchangeDeclareHandler.java
+++ b/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/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java b/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java
index c828ea4843..8e4fb3635b 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java
+++ b/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() +".");
}