ServerSession unblock(AMQQueue) can cause NPE when trying to remove a queue
from _blockingQueues Map that is not present
------------------------------------------------------------------------------------------------------------------------
Key: QPID-3823
URL: https://issues.apache.org/jira/browse/QPID-3823
Project: Qpid
Issue Type: Bug
Components: Java Broker
Affects Versions: 0.15
Reporter: Andrew MacBean
Assignee: Andrew MacBean
Fix For: 0.15
When running multiple producers and a single consumer on a queue, the unblock
code NPEs when trying to remove a queue entry, from the _blockingQueues Map,
that is not present. This is due to the Map being given a Boolean keyed by
Queue and in the case above the Map.remove() method returns null.
The data structures used to hold the blocking queues and sessions used in
SimpleAMQQueue and the AMQSessionModel implementations (ServerSession &
AMQCHannel) should be changed from ConcurrentMaps to Sets - specifically
ConcurrentSkipListSet. This will prevent the NPE from being possible.
--
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]