Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-6234

(0-10) Absence of destination argument to the message.subscribe command causes Java Broker to NPE

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 0.31
    • qpid-java-6.0
    • Broker-J
    • None

    Description

      If I pass a message.subscribe command to the Java Broker but omit the optional destination flag, the test fails and the Java Broker exits due to the following NPE.

      It appears the code assumes destination will never be absent.

      The easiest way to reproduce the issue is to run Python test (which is excluded in the Java010PythonExcludes file)

      qpid_tests.broker_0_10.queue.QueueTests.test_declare_exclusive_alreadyinuse

      Exception is:

      ########################################################################
      #
      # Unhandled Exception java.lang.NullPointerException in Thread IoReceiver - /0:0:0:0:0:0:0:1:49316
      #
      # Exiting
      #
      ########################################################################
      java.lang.NullPointerException
      	at java.util.concurrent.ConcurrentHashMap.hash(ConcurrentHashMap.java:333)
      	at java.util.concurrent.ConcurrentHashMap.remove(ConcurrentHashMap.java:1175)
      	at org.apache.qpid.server.protocol.v0_10.ServerSession.unregister(ServerSession.java:556)
      	at org.apache.qpid.server.protocol.v0_10.ServerSession.unregisterSubscriptions(ServerSession.java:940)
      	at org.apache.qpid.server.protocol.v0_10.ServerConnection.closeSubscriptions(ServerConnection.java:542)
      	at org.apache.qpid.server.protocol.v0_10.ServerConnection.closed(ServerConnection.java:534)
      	at org.apache.qpid.transport.network.Assembler.closed(Assembler.java:112)
      	at org.apache.qpid.transport.network.InputHandler.closed(InputHandler.java:214)
      	at org.apache.qpid.server.protocol.v0_10.ProtocolEngine_0_10.closed(ProtocolEngine_0_10.java:231)
      	at org.apache.qpid.server.protocol.MultiVersionProtocolEngine.closed(MultiVersionProtocolEngine.java:129)
      	at org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:222)
      	at java.lang.Thread.run(Thread.java:744)
      
      Process finished with exit code 1
      
      

      Attachments

        Activity

          People

            lorenz.quack Lorenz Quack
            kwall Keith Wall
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: