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