ActiveMQ
  1. ActiveMQ
  2. AMQ-3814

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

    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.

        Activity

          People

          • Assignee:
            Unassigned
            Reporter:
            Ingrid Olson
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development