[ 
https://issues.apache.org/jira/browse/QPID-6066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14119520#comment-14119520
 ] 

Keith Wall edited comment on QPID-6066 at 9/3/14 8:07 AM:
----------------------------------------------------------

The changes made by QPID-6037 have exposed an defect in earlier versions of the 
Java Broker:  namely the inability to enquire if a queue is bound to the 
default exchange (in other words - check if the queue exists).  QPID-6037 
changed the client to check for the existence of the queue (using 
exchange.bound) before checking the queue depth.  This causes Java Brokers <= 
0.28 to fail with the above stack trace.

As AMQSession#getQueueDepth is not part of the core API (not part of JMS), the 
decision is made to add a system property to the Java Client so that the call 
to exchange.bound can be omitted.  It is expected that this workaround will be 
seldom needed in practice.  This system property will only have effect on the 
0-8..0-9-1 path.  0-10 is unaffected.


was (Author: k-wall):
The changes made by QPID-6037 have exposed an defect in earlier versions of the 
Java Broker:  namely the inability to enquire if a queue is bound to the 
default exchange (in other words - check if the queue exists).  QPID-6037 
changed the client to check for the existence of the queue (using 
exchange.bound) before checking the queue depth.  This causes Java Brokers <= 
0.28 to fail with the above stack trace.

As AMQSession#getQueueDepth is not part of the core API (not part of JMS), the 
decision is made to add a system property to the Java Client so that the call 
to exchange.bound can be omitted.  It is expected that this workaround will be 
seldom needed in practice.

> AMQSession#getQueueDepth() fails against pre 0.30 java brokers
> --------------------------------------------------------------
>
>                 Key: QPID-6066
>                 URL: https://issues.apache.org/jira/browse/QPID-6066
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker, Java Client
>    Affects Versions: 0.30
>            Reporter: Keith Wall
>             Fix For: 0.31
>
>
> When I try to enquire queue depth using the non-JMS API 
> (AMQSession#getQueueDepth()) against a pre 0.30 Java Broker using the 
> 0-8..0-9-1 protocol, the call ends with the following exception.
> {noformat}
> 2014-09-02 09:03:42,147 ERROR [IoReceiver - /127.0.0.1:59381] 
> (protocol.AMQProtocolEngine) - Unexpected exception while processing frame.   
> Closing connection. org.apache.qpid.AMQException: Exchange exchange must not 
> be null at 
> org.apache.qpid.server.handler.ExchangeBoundHandler.methodReceived(ExchangeBoundHandler.java:89)
>  at 
> org.apache.qpid.server.handler.ServerMethodDispatcherImpl.dispatchExchangeBound(ServerMethodDispatcherImpl.java:458)
>  at 
> org.apache.qpid.framing.amqp_0_9.ExchangeBoundBodyImpl.execute(ExchangeBoundBodyImpl.java:130)
>  at 
> org.apache.qpid.server.state.AMQStateManager.methodReceived(AMQStateManager.java:120)
>  at 
> org.apache.qpid.server.protocol.AMQProtocolEngine.methodFrameReceived(AMQProtocolEngine.java:569)
>  at 
> org.apache.qpid.framing.AMQMethodBodyImpl.handle(AMQMethodBodyImpl.java:97) 
> at 
> org.apache.qpid.server.protocol.AMQProtocolEngine.frameReceived(AMQProtocolEngine.java:433)
>  at 
> org.apache.qpid.server.protocol.AMQProtocolEngine.dataBlockReceived(AMQProtocolEngine.java:356)
>  at 
> org.apache.qpid.server.protocol.AMQProtocolEngine.received(AMQProtocolEngine.java:277)
>  at 
> org.apache.qpid.server.protocol.AMQProtocolEngine.received(AMQProtocolEngine.java:103)
>  at 
> org.apache.qpid.server.protocol.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:118)
>  at 
> org.apache.qpid.server.protocol.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:37)
>  at 
> org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:161) at 
> java.lang.Thread.run(Thread.java:745)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to