Uploaded image for project: 'ActiveMQ Classic'
  1. ActiveMQ Classic
  2. AMQ-3814

MessageConsumer.receive() throwing InterruptedException after Thread suspension resulting in an JMSException being thrown upon subsequent attempt to close MessageConsumer.

    XMLWordPrintableJSON

Details

    Description

      When I suspend a thread that is calling receive() on a MessageConsumer, a JMSException is thrown. The cause of this is an InterruptedException. In the catch block of the thrown JMSException, I then try calling close() the MessageConsumer. Attempting to close the MessageConsumer throws another JMSException due to an InterruptedIOException that gets thrown inside of the "this.transport.oneway(command)" line of the doAsyncSendPacket(Command command) call inside of the doClose() method inside of the close() method of the ActiveMQMessageConsumer class.

      The result of this is that the MessageConsumer does not close, so that when I try to resubscribe my MessageConsumer to a durable Topic, I get an error that the MessageConsumer is already in use for that subscription name and client ID.
      #AMQ-3529 (https://issues.apache.org/jira/browse/AMQ-3529) looks like it addresses a similar issue, which has supposedly been fixed. When I use the most recent snapshot of 5.6, though, I still encounter the same problem.

      Attachments

        Activity

          People

            Unassigned Unassigned
            io42 Ingrid Olson
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: