summaryrefslogtreecommitdiff
path: root/java/client/src
diff options
context:
space:
mode:
Diffstat (limited to 'java/client/src')
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java29
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/message/AbstractAMQMessageDelegate.java5
2 files changed, 26 insertions, 8 deletions
diff --git a/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java b/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java
index 522782a6cf..ed2e96e83b 100644
--- a/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java
+++ b/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java
@@ -115,15 +115,28 @@ public class AMQMessageDelegate_0_10 extends AbstractAMQMessageDelegate
if (deliveryProps != null)
{
String exchange = deliveryProps.getExchange();
+ checkAndUpdateExchange(exchange,session);
+
+ }
+
+ MessageProperties msgProps = header.get(MessageProperties.class);
+ if (msgProps != null && msgProps.getReplyTo() != null)
+ {
+ String exchange = msgProps.getReplyTo().getExchange();
+ checkAndUpdateExchange(exchange,session);
+
+ }
+ }
+
+ private static void checkAndUpdateExchange(String exchange, org.apache.qpid.transport.Session session)
+ {
+ if (exchange != null && !exchangeMapContains(exchange))
+ {
+ Future<ExchangeQueryResult> future =
+ session.exchangeQuery(exchange.toString());
+ ExchangeQueryResult res = future.get();
- if (exchange != null && !exchangeMapContains(exchange))
- {
- Future<ExchangeQueryResult> future =
- session.exchangeQuery(exchange.toString());
- ExchangeQueryResult res = future.get();
-
- updateExchangeType(exchange, res.getType());
- }
+ updateExchangeType(exchange, res.getType());
}
}
diff --git a/java/client/src/main/java/org/apache/qpid/client/message/AbstractAMQMessageDelegate.java b/java/client/src/main/java/org/apache/qpid/client/message/AbstractAMQMessageDelegate.java
index 6b90bd3ad2..89fbc9722c 100644
--- a/java/client/src/main/java/org/apache/qpid/client/message/AbstractAMQMessageDelegate.java
+++ b/java/client/src/main/java/org/apache/qpid/client/message/AbstractAMQMessageDelegate.java
@@ -95,6 +95,11 @@ public abstract class AbstractAMQMessageDelegate implements AMQMessageDelegate
AMQDestination dest;
ExchangeInfo exchangeInfo = _exchangeMap.get(exchange.asString());
+ if (exchangeInfo == null)
+ {
+ exchangeInfo = new ExchangeInfo(exchange.asString(),"",AMQDestination.UNKNOWN_TYPE);
+ }
+
if ("topic".equals(exchangeInfo.exchangeType))
{
dest = new AMQTopic(exchange, routingKey, null);