Details
Description
After several ubscribe/unsubscribe commands to activemq, subscribtions are not removed and there's error log in the broker:
java.lang.IllegalStateException: Cannot remove a consumer that had not been registered: ID:das-32775-1164773607925-3:1881:-1:2
at org.apache.activemq.broker.AbstractConnection.processRemoveConsumer(AbstractConnection.java:551)
at org.apache.activemq.command.RemoveInfo.visit(RemoveInfo.java:64)
at org.apache.activemq.broker.AbstractConnection.service(AbstractConnection.java:237)
at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:61)
at org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:92)
at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:67)
at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:123)
at org.apache.activemq.transport.stomp.StompTransportFilter.sendToActiveMQ(StompTransportFilter.java:70)
at org.apache.activemq.transport.stomp.ProtocolConverter.sendToActiveMQ(ProtocolConverter.java:112)
at org.apache.activemq.transport.stomp.ProtocolConverter.onStompUnsubscribe(ProtocolConverter.java:376)
at org.apache.activemq.transport.stomp.ProtocolConverter.onStompCommad(ProtocolConverter.java:144)
at org.apache.activemq.transport.stomp.StompTransportFilter.onCommand(StompTransportFilter.java:60)
at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:88)
at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:137)
at java.lang.Thread.run(Thread.java:595)
The problem is that there's internal map of subscriptions in ProtocolConverter class. On unsubscribe command, subscription is not removed from this internal map. Attached patch (against ProtocolConverter.java) fixes this bug
Is is possible for the provided patch to be applied for 4.2 version?