Unbind queue causes connection failure when using AMQP 0-9-1
------------------------------------------------------------
Key: QPID-3707
URL: https://issues.apache.org/jira/browse/QPID-3707
Project: Qpid
Issue Type: Bug
Components: Java Broker
Reporter: Frank Salim
The broker sends a FIN after receiving an unbind queue command. The stack trace
(below) shows a ClassCastException caused by attempting to cast a
MethodRegistry_0_91 to a MethodRegistry_0_9. The offending line of code appears
to be line 117 in the QueueUnbindHandler (trunk):
MethodRegistry_0_9 methodRegistry = (MethodRegistry_0_9)
session.getMethodRegistry();
Compare to line 153 in QueueBindHandler (trunk) which reads:
MethodRegistry methodRegistry = protocolConnection.getMethodRegistry();
2011-12-20 15:23:53,157 INFO [pool-3-thread-19] logging.Log4jMessageLogger
(Log4jMessageLogger.java:72) - [con:0(guest@/127.0.0.1:51326/test)/ch:2]
[vh(/test)/ex(fanout/demo_exchange)/qu(client259647)/rk(broadcastkey)] BND-1002
: Deleted
2011-12-20 15:23:53,158 ERROR [pool-3-thread-19] protocol.AMQProtocolEngine
(AMQProtocolEngine.java:456) - Unexpected exception while processing frame.
Closing connection.
java.lang.ClassCastException:
org.apache.qpid.framing.amqp_0_91.MethodRegistry_0_91 cannot be cast to
org.apache.qpid.framing.amqp_0_9.MethodRegistry_0_9
at
org.apache.qpid.server.handler.QueueUnbindHandler.methodReceived(QueueUnbindHandler.java:117)
at
org.apache.qpid.server.handler.ServerMethodDispatcherImpl_0_91.dispatchQueueUnbind(ServerMethodDispatcherImpl_0_91.java:165)
at
org.apache.qpid.framing.amqp_0_91.QueueUnbindBodyImpl.execute(QueueUnbindBodyImpl.java:152)
at
org.apache.qpid.server.state.AMQStateManager.methodReceived(AMQStateManager.java:205)
at
org.apache.qpid.server.protocol.AMQProtocolEngine.methodFrameReceived(AMQProtocolEngine.java:390)
at org.apache.qpid.framing.AMQMethodBodyImpl.handle(AMQMethodBodyImpl.java:93)
at
org.apache.qpid.server.protocol.AMQProtocolEngine.frameReceived(AMQProtocolEngine.java:334)
at
org.apache.qpid.server.protocol.AMQProtocolEngine.dataBlockReceived(AMQProtocolEngine.java:283)
at
org.apache.qpid.server.protocol.AMQProtocolEngine$1.run(AMQProtocolEngine.java:254)
at org.apache.qpid.pool.Job.processAll(Job.java:110)
at org.apache.qpid.pool.Job.run(Job.java:149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
--
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:[email protected]