Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-7417

[Java Broker] Ensure message instance listeners only fire on state changes of the associated object

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • qpid-java-6.0, qpid-java-6.0.4, qpid-java-6.1
    • qpid-java-6.0.5, qpid-java-6.1
    • Broker-J
    • None

    Description

      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.

      Attachments

        Activity

          People

            Unassigned Unassigned
            lorenz.quack Lorenz Quack
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: