qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Praveen Murugesan (Updated) (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (QPID-3817) QueueBrowser does not work with the JNDI destination addressing scheme
Date Sat, 11 Feb 2012 05:36:59 GMT

     [ https://issues.apache.org/jira/browse/QPID-3817?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Praveen Murugesan updated QPID-3817:
------------------------------------


Patch Attached

Cause: When creating a QueueBrowser with a destination created using an addressing string
a java.lang.ClassCastException is thrown. 

Consequence: The application is unable to create QueueBrowser from destinations created using
an addressing string. The workaround was to create a Queue using session.createQueue method
passing an address string.

Fix: The createBrowser method has been modified to avoid doing the unnecessary cast to AMQQueue
object, as this doesn't work with the AMQAnyDestination object created by the jndi queue creation
model. The code is now modified to work with the javax.jms.Queue interface instead of the
concrete implementation.

Result: The createBrowser method is now able to create a QueueBrowser from a destination created
using an address string(if it implements the Queue Interface).

Longer term, it might be nicer to deprecate the older addressing scheme, and stick to the
new one. Also, it will be nicer to have a common queue creation code, not a separate path,
when created using jndi, and when created using session.createQueue(). Since I'm newer to
this project I don't have great expertise, about the reason to different models. It'd be great
if someone can throw some light about this.

Thank you.
                
> QueueBrowser does not work with the JNDI destination addressing scheme
> ----------------------------------------------------------------------
>
>                 Key: QPID-3817
>                 URL: https://issues.apache.org/jira/browse/QPID-3817
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: 0.15
>            Reporter: Praveen Murugesan
>              Labels: create, jndi, queue
>             Fix For: 0.15
>
>         Attachments: QueueBrowserPatch.patch
>
>
> I create my queue using the JNDI properties, and when I try to create a queue browser
from the Destination object, I get the
> java.lang.ClassCastException: org.apache.qpid.client.AMQAnyDestination cannot be cast
to org.apache.qpid.client.AMQQueue
> 	at org.apache.qpid.client.AMQSession.createBrowser(AMQSession.java:963)
> 	at org.apache.qpid.client.AMQSession.createBrowser(AMQSession.java:950)
> A sample code snippet is below; (just to give an idea).
> Properties properties = new Properties();
> String queueAddress = "T1;{create: always , node : {type : queue, durable : true}}"
> properties.put("destination.T1", queueAddress);
> InitialContext ctx = new InitialContext(properties);
> Destination queue = (Destination) ctx.lookup(queueName);
> QueueBrowser queueBrowser = qpidSession.createBrowser(queueRef);
> triggers =>
> java.lang.ClassCastException: org.apache.qpid.client.AMQAnyDestination cannot be cast
to org.apache.qpid.client.AMQQueue
> 	at org.apache.qpid.client.AMQSession.createBrowser(AMQSession.java:963)
> 	at org.apache.qpid.client.AMQSession.createBrowser(AMQSession.java:950)
> The createBrowser call is part of JMS. However this part of the API cannot
> be used with Destinations defined using the addressing scheme.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
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


Mime
View raw message