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.