Qpid
  1. Qpid
  2. QPID-2430

Java broker emits NPE following qpid-tool being connected

    Details

    • Type: Bug Bug
    • Status: Closed
    • 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

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development