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

Verify that the client code does not throw FailoverExceptions out of the API

    XMLWordPrintableJSON

Details

    • Task
    • Status: Closed
    • Major
    • Resolution: Later
    • M3
    • JIRA Cleanup
    • JMS AMQP 0-x
    • None

    Description

      The following methods use syncWrite() but are not wrapped in a FailoverSupport:
      AMQSession's commit(), rollback(), close()
      AMQConnection.close() via AMQProtocolHandler.closeConnection()
      BasicMessageConsumer.close()
      These need to be protected/wrapped in a FailoverSupport. Note that commit() and rollback() are not currently protected by a lock on failoverMutex either.

      Perhaps StateManager.attainState is the only other method that blocks for "a response frame". In this case a series of response frames that result in the state changing. The only use of attainState is in AMQConnection.makeBrokerConnection. It would appear to need to be wrapped in a FailoverSupport as otherwise the FailoverException will escape. Since this is failing-over during connection some care may be required. Note that the makeBrokerConnection is used at 3 different sites.

      In addition sendAcknowledgement appear to need to lock the failoverMutex.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              ritchiem Martin Ritchie
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: