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

Bug in STOMP transport unsubscribe

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 4.0.2
    • 4.1.1, 5.0.0
    • Transport
    • None
    • linux 2.6, java 1.5

    • Patch Available

    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

      Attachments

        1. ASF.LICENSE.NOT.GRANTED--patch.txt
          0.4 kB
          Danielius Jurna

        Activity

          People

            rajdavies Robert Davies
            jurna Danielius Jurna
            Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: