Lorenz Quack created QPID-7417:
----------------------------------

             Summary: [Java Broker] Ensure StateChangeListener only fire on 
stateChanges of the associated object
                 Key: QPID-7417
                 URL: https://issues.apache.org/jira/browse/QPID-7417
             Project: Qpid
          Issue Type: Bug
          Components: Java Broker
    Affects Versions: qpid-java-6.0.4, qpid-java-6.0, qpid-java-6.1
            Reporter: Lorenz Quack
             Fix For: qpid-java-6.1, qpid-java-6.0.5


Currently a typical StateChangeListener checks whether it is interested in the 
particular change of state that is occurring but it does not check from which 
object the state change is triggered from.

This can be a problem for example in 
{{ConsumerTarget_0_8#_unacknowledgedMessageListener}} if a message gets 
rejected from ConsumerTarget A and assigned to ConsumerTarget B before the 
stateChangeListeners are invoked. The invocation of the listeners would notify 
about the transition from ACQUIRED to AVAILABLE relating to ConsumerTarget A 
but ConsumerTarget B (not checking for the origin of the state change) would 
also restore its credit. This premature restoration of credit can lead to the 
client receiving too many messages in its prefetch leading to potentially 
undesired behaviour.



--
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