You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Rajith Attapattu (JIRA)" <ji...@apache.org> on 2011/03/17 22:30:29 UTC
[jira] Resolved: (QPID-3011) NPE thrown when using a custom
exchange in a replyTo address.
[ https://issues.apache.org/jira/browse/QPID-3011?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Rajith Attapattu resolved QPID-3011.
------------------------------------
Resolution: Fixed
Fixed along with a test case.
> NPE thrown when using a custom exchange in a replyTo address.
> -------------------------------------------------------------
>
> Key: QPID-3011
> URL: https://issues.apache.org/jira/browse/QPID-3011
> Project: Qpid
> Issue Type: Bug
> Components: Java Client
> Affects Versions: 0.8
> Reporter: Rajith Attapattu
> Assignee: Rajith Attapattu
> Priority: Minor
> Fix For: 0.9
>
>
> The NPE is due to the generateDestination method in AbstractAMQMessageDelegate.java not handling the case where the _exchangeMap does not contain information about a particular exchange.
> This _exchangeMap is pre populated with the known exchange types and any other exchange it discovers subsequently through the updateExchangeMethod.
> However if it encounters an exchange which is not represented in the map, that case is not handled.
> For example the following address is likely to cause an NPE if it is used as a replyTo address and wasn't used previously by any of the producers or consumers for that particular session.
> "hello;{create:always,node:{type:topic}}"
> The solution to this problem should be two fold IMO
> 1. Handle the null case - if information regarding an exchange is not present, create an ExchangeInfo object using the exchange-name, "" as the exchange class and UNKOWN as the destination type and use that to create the destination.
> If this destination is then used in a consumer or a producer, the address resolution code will query the broker and figure out the correct information.
> However it would have been better if information could be queried an updated right within the the generateDestination method - but at present that does not seem to be easy to deal with.
> 2. Query and update the exchange information for the replyTo address (if present) just as we would for the "exchange" where the message originated from.
> This is done within the updateExchangeTypeMapping method in AMQMessageDelegate_0_10.java
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org