[
https://issues.apache.org/jira/browse/QPID-3905?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13236465#comment-13236465
]
Keith Wall commented on QPID-3905:
----------------------------------
I wonder if my change for QPID-3807 has exposed this defect.
The method Dispatcher#rejectPending (oddly) refers to *itself* via the field
AMQSession#_dispatcher rather than making method calls on itself. Before
QPID-3807, updates to the fields were made in a thread-unsafe manner so it is
possible that the Dispatcher, reading stale copies of the fields, allowed this
bug to go unnoticed.
I see no reason for #rejectPending to use _dispatcher, and think we should
change it to call the method directly.
We should probably consider having this included in 0-16.
> NullPointerException is thrown on rejecting messages whilst closing the
> connection
> ----------------------------------------------------------------------------------
>
> Key: QPID-3905
> URL: https://issues.apache.org/jira/browse/QPID-3905
> Project: Qpid
> Issue Type: Bug
> Components: Java Client
> Affects Versions: 0.14
> Reporter: Alex Rudyy
>
> NullPointerException is thrown on rejecting messages whilst closing the
> connection.
> The dispatcher is set to null at this point and accessing it causing the
> NullPointerException.
> 2012-03-21 06:04:29,946 ERROR [AMQProtocolHandler] Exception processing frame
> java.lang.NullPointerException
> at
> org.apache.qpid.client.AMQSession$Dispatcher.rejectPending(AMQSession.java:3217)
> at
> org.apache.qpid.client.AMQSession.confirmConsumerCancelled(AMQSession.java:903)
> at
> org.apache.qpid.client.protocol.AMQProtocolSession.confirmConsumerCancelled(AMQProtocolSession.java:397)
> at
> org.apache.qpid.client.handler.BasicCancelOkMethodHandler.methodReceived(BasicCancelOkMethodHandler.java:53)
> at
> org.apache.qpid.client.handler.ClientMethodDispatcherImpl.dispatchBasicCancelOk(ClientMethodDispatcherImpl.java:126)
> at
> org.apache.qpid.framing.amqp_0_9.BasicCancelOkBodyImpl.execute(BasicCancelOkBodyImpl.java:110)
> at
> org.apache.qpid.client.state.AMQStateManager.methodReceived(AMQStateManager.java:114)
> at
> org.apache.qpid.client.protocol.AMQProtocolHandler.methodBodyReceived(AMQProtocolHandler.java:479)
> at
> org.apache.qpid.client.protocol.AMQProtocolSession.methodFrameReceived(AMQProtocolSession.java:455)
> at
> org.apache.qpid.framing.AMQMethodBodyImpl.handle(AMQMethodBodyImpl.java:97)
> at
> org.apache.qpid.client.protocol.AMQProtocolHandler.received(AMQProtocolHandler.java:436)
> at
> org.apache.qpid.client.protocol.AMQProtocolHandler.received(AMQProtocolHandler.java:121)
> at
> org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:152)
> 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
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]