Return-Path: Delivered-To: apmail-qpid-commits-archive@www.apache.org Received: (qmail 28881 invoked from network); 20 Jan 2011 23:51:31 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 20 Jan 2011 23:51:31 -0000 Received: (qmail 93991 invoked by uid 500); 20 Jan 2011 23:51:31 -0000 Delivered-To: apmail-qpid-commits-archive@qpid.apache.org Received: (qmail 93933 invoked by uid 500); 20 Jan 2011 23:51:30 -0000 Mailing-List: contact commits-help@qpid.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@qpid.apache.org Delivered-To: mailing list commits@qpid.apache.org Received: (qmail 93926 invoked by uid 99); 20 Jan 2011 23:51:30 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 20 Jan 2011 23:51:30 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 20 Jan 2011 23:51:29 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 9252123889BF; Thu, 20 Jan 2011 23:51:09 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1061577 - in /qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message: AMQMessageDelegate_0_10.java AbstractAMQMessageDelegate.java Date: Thu, 20 Jan 2011 23:51:09 -0000 To: commits@qpid.apache.org From: rajith@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110120235109.9252123889BF@eris.apache.org> Author: rajith Date: Thu Jan 20 23:51:09 2011 New Revision: 1061577 URL: http://svn.apache.org/viewvc?rev=1061577&view=rev Log: QPID-3011 Commiting a fix as per the solution outlined in the above JIRA. A null check is added in the generateDestination method in AbstractAMQMessageDelegate.java where an ExchangeInfo object is created with just the exchange name to allow the destination to be created. The correct information will be querried when a consumer or producer is created with that destination. If a replyTo address is available then the exchange info for that is querried and updated within the updateExchangeTypeMapping method in AMQMessageDelegate_0_10.java Modified: qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractAMQMessageDelegate.java Modified: qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java?rev=1061577&r1=1061576&r2=1061577&view=diff ============================================================================== --- qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java (original) +++ qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java Thu Jan 20 23:51:09 2011 @@ -115,15 +115,28 @@ public class AMQMessageDelegate_0_10 ext 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 future = + session.exchangeQuery(exchange.toString()); + ExchangeQueryResult res = future.get(); - if (exchange != null && !exchangeMapContains(exchange)) - { - Future future = - session.exchangeQuery(exchange.toString()); - ExchangeQueryResult res = future.get(); - - updateExchangeType(exchange, res.getType()); - } + updateExchangeType(exchange, res.getType()); } } Modified: qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractAMQMessageDelegate.java URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractAMQMessageDelegate.java?rev=1061577&r1=1061576&r2=1061577&view=diff ============================================================================== --- qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractAMQMessageDelegate.java (original) +++ qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractAMQMessageDelegate.java Thu Jan 20 23:51:09 2011 @@ -95,6 +95,11 @@ public abstract class AbstractAMQMessage 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); --------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:commits-subscribe@qpid.apache.org