Qpid
  1. Qpid
  2. QPID-2430

Java broker emits NPE following qpid-tool being connected

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.7
    • Fix Version/s: 0.7
    • Component/s: Java Broker
    • Labels:
      None

      Description

      Whilst qpid-tool is connected to the Java broker, after a period of time the broker is seen to emit a NullPointerException. This was typically seen quickyl before the management update period was increased to 10 seconds, now it occurs after a longer period, suggesting the root cause is dependant on the number of messages sent. Thus far, the same code location has generated the NPE when called from slightly different contexts in the following 3 threads:

      Exception in thread "TimerThread-test:" java.lang.NullPointerException
      Exception in thread "pool-1-thread-X" java.lang.NullPointerException
      Exception in thread "SubFlushRunner-org.apache.qpid.server.subscription.Subscription_0_10@1d4d493" java.lang.NullPointerException

      Up to date stack (r918944):
      Exception in thread "TimerThread-test:" java.lang.NullPointerException
      at org.apache.qpid.server.txn.AutoCommitTransaction.dequeue(AutoCommitTransaction.java:55)
      at org.apache.qpid.server.subscription.Subscription_0_10.forceDequeue(Subscription_0_10.java:577)
      at org.apache.qpid.server.subscription.Subscription_0_10.send(Subscription_0_10.java:564)
      at org.apache.qpid.server.queue.SimpleAMQQueue.deliverMessage(SimpleAMQQueue.java:696)
      at org.apache.qpid.server.queue.SimpleAMQQueue.deliverToSubscription(SimpleAMQQueue.java:641)
      at org.apache.qpid.server.queue.SimpleAMQQueue.enqueue(SimpleAMQQueue.java:594)
      at org.apache.qpid.server.queue.SimpleAMQQueue.enqueue(SimpleAMQQueue.java:519)
      at org.apache.qpid.qmf.ManagementExchange.publishToConsole(ManagementExchange.java:364)
      at org.apache.qpid.qmf.ManagementExchange.publishObjectsToConsole(ManagementExchange.java:343)
      at org.apache.qpid.qmf.ManagementExchange.publishAllConsole(ManagementExchange.java:316)
      at org.apache.qpid.qmf.ManagementExchange$UpdateTask.run(ManagementExchange.java:497)
      at java.util.TimerThread.mainLoop(Timer.java:512)
      at java.util.TimerThread.run(Timer.java:462)

      Older stacks (some line numbers have changed slightly since):
      Exception in thread "SubFlushRunner-org.apache.qpid.server.subscription.Subscription_0_10@1d4d493" java.lang.NullPointerException
      at org.apache.qpid.server.txn.AutoCommitTransaction.dequeue(AutoCommitTransaction.java:55)
      at org.apache.qpid.server.subscription.Subscription_0_10.forceDequeue(Subscription_0_10.java:576)
      at org.apache.qpid.server.subscription.Subscription_0_10.send(Subscription_0_10.java:563)
      at org.apache.qpid.server.queue.SimpleAMQQueue.deliverMessage(SimpleAMQQueue.java:674)
      at org.apache.qpid.server.queue.SimpleAMQQueue.attemptDelivery(SimpleAMQQueue.java:1646)
      at org.apache.qpid.server.queue.SimpleAMQQueue.flushSubscription(SimpleAMQQueue.java:1585)
      at org.apache.qpid.server.queue.SubFlushRunner.run(SubFlushRunner.java:56)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      at java.lang.Thread.run(Thread.java:619)
      Exception in thread "SubFlushRunner-org.apache.qpid.server.subscription.Subscription_0_10@1d4d493" java.lang.NullPointerException
      at org.apache.qpid.server.txn.AutoCommitTransaction.dequeue(AutoCommitTransaction.java:55)
      at org.apache.qpid.server.subscription.Subscription_0_10.forceDequeue(Subscription_0_10.java:576)
      at org.apache.qpid.server.subscription.Subscription_0_10.send(Subscription_0_10.java:563)
      at org.apache.qpid.server.queue.SimpleAMQQueue.deliverMessage(SimpleAMQQueue.java:674)
      at org.apache.qpid.server.queue.SimpleAMQQueue.attemptDelivery(SimpleAMQQueue.java:1646)
      at org.apache.qpid.server.queue.SimpleAMQQueue.flushSubscription(SimpleAMQQueue.java:1585)
      at org.apache.qpid.server.queue.SubFlushRunner.run(SubFlushRunner.java:56)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      at java.lang.Thread.run(Thread.java:619)
      Exception in thread "pool-1-thread-15" java.lang.NullPointerException
      at org.apache.qpid.server.txn.AutoCommitTransaction.dequeue(AutoCommitTransaction.java:55)
      at org.apache.qpid.server.subscription.Subscription_0_10.forceDequeue(Subscription_0_10.java:576)
      at org.apache.qpid.server.subscription.Subscription_0_10.send(Subscription_0_10.java:563)
      at org.apache.qpid.server.queue.SimpleAMQQueue.deliverMessage(SimpleAMQQueue.java:674)
      at org.apache.qpid.server.queue.SimpleAMQQueue.attemptDelivery(SimpleAMQQueue.java:1646)
      at org.apache.qpid.server.queue.SimpleAMQQueue.processQueue(SimpleAMQQueue.java:1765)
      at org.apache.qpid.server.queue.SimpleAMQQueue.access$100(SimpleAMQQueue.java:70)
      at org.apache.qpid.server.queue.SimpleAMQQueue$Runner.run(SimpleAMQQueue.java:1542)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      at java.lang.Thread.run(Thread.java:619)

        Activity

        Robbie Gemmell made changes -
        Component/s Java Management : QMF [ 12313412 ]
        Marnie McCormack made changes -
        Status Ready To Review [ 10006 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Robbie Gemmell made changes -
        Status In Progress [ 3 ] Ready To Review [ 10006 ]
        Robbie Gemmell made changes -
        Status Open [ 1 ] In Progress [ 3 ]
        Robbie Gemmell made changes -
        Assignee Robbie Gemmell [ gemmellr ]
        Robbie Gemmell made changes -
        Field Original Value New Value
        Summary Java broker emits NPE a period following qpid-tool being connected Java broker emits NPE following qpid-tool being connected
        Robbie Gemmell created issue -

          People

          • Assignee:
            Robbie Gemmell
            Reporter:
            Robbie Gemmell
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development