Java broker emits NPE a period following qpid-tool being connected
------------------------------------------------------------------

                 Key: QPID-2430
                 URL: https://issues.apache.org/jira/browse/QPID-2430
             Project: Qpid
          Issue Type: Bug
          Components: Java Broker, Java Management : QMF
    Affects Versions: 0.7
            Reporter: Robbie Gemmell
             Fix For: 0.7


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...@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...@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...@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)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to