some logic used to find current/available messages may return a QueueEntry 
currently in the dequeued state.
-----------------------------------------------------------------------------------------------------------

                 Key: QPID-3219
                 URL: https://issues.apache.org/jira/browse/QPID-3219
             Project: Qpid
          Issue Type: Bug
          Components: Java Broker
    Affects Versions: 0.8, 0.7, 0.6, 0.5, 0.9, 0.10
            Reporter: Robbie Gemmell
             Fix For: 0.11


Some logic used to find current/available messages may incorrectly 
gather/return a QueueEntry in the dequeued state.

The QueueEntry state model has an intermediate 'dequeued' state that the entry 
will enter before being disposed of and moved to the 'deleted' state.

At present, most logic dealing with QueueEntry presence/availability checks 
only that they aren't deleted or that they can be acquired (typically both are 
done in the latter case, but checking the deletion is unnecessary in this case 
since the acquire attempt would fail if it were deleted). There is no intended 
path for a queue entry to transition from being dequeued to anything other than 
the deleted state, and so any logic inspecting for current/available messages 
should also disregard entries in the dequeued state.

Areas known to be affected by the issues include the various 
SimpleAMQQueue#'getMessagesOnTheQueue' type operations in  used for tasks such 
as viewing / copying / moving messages via JMX, and also the 
QueueEntryImpl#getNext method used to traverse the QueueEntryList during 
delivery operations.

--
This message is automatically generated by JIRA.
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-subscr...@qpid.apache.org

Reply via email to