[ 
https://issues.apache.org/jira/browse/QPID-5782?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alex Rudyy resolved QPID-5782.
------------------------------

    Resolution: Fixed

The changes look good to me

> VirtualHostHouseKeeper tries to check queues that are not yet open leading to 
> NPE in logs
> -----------------------------------------------------------------------------------------
>
>                 Key: QPID-5782
>                 URL: https://issues.apache.org/jira/browse/QPID-5782
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: 0.29
>            Reporter: Keith Wall
>            Assignee: Alex Rudyy
>             Fix For: 0.29
>
>
> Since QPID-5710, there has been a possibility that the housekeeper can 
> attempt to check that message status on queues that are not yet open, and 
> this leads to an NPE as such queues have a null entry list.
> TransactionTimeoutTest occasionally shows this problem (see log excerpt 
> below).  It does not cause a test failure as the housekeeper merely logs all 
> exceptions and continues.
> It seems QPID-5710 introduced this possibility as it moved the creation of 
> the queue entry list from construction time to onOpen().
> {noformat}
> IoReceiver - localhost/127.0.0.1:15672 2014-05-23 08:00:17,586 DEBUG 
> [qpid.client.protocol.AMQProtocolHandler] (1873784078)Method frame received: 
> [ExchangeDeclareOkBodyImpl: ]
> main 2014-05-23 08:00:17,586 DEBUG [qpid.protocol] SEND: 
> [org.apache.qpid.client.protocol.AMQProtocolHandler@6fafad0e] Frame 
> channelId: 3, bodyFrame: [QueueDeclareBodyImpl: ticket=0, 
> queue=TransactionTimeoutTest-testConsumerIdleCommit, passive=false, 
> durable=true, exclusive=false, autoDelete=false, nowait=false, arguments=null]
> IoReceiver - /127.0.0.1:50620 2014-05-23 08:00:17,586 DEBUG 
> [server.protocol.v0_8.AMQProtocolEngine] Frame handled in 0 ms. Frame: Frame 
> channelId: 3, bodyFrame: [ExchangeDeclareBodyImpl: ticket=0, 
> exchange=amq.direct, type=direct, passive=true, durable=false, 
> autoDelete=false, internal=false, nowait=false, arguments=null]
> IoReceiver - /127.0.0.1:50620 2014-05-23 08:00:17,586 DEBUG 
> [server.protocol.v0_8.AMQChannel] sync() called on channel 3(1965183178)
> IoReceiver - /127.0.0.1:50620 2014-05-23 08:00:17,586 DEBUG 
> [server.protocol.v0_8.AMQProtocolEngine] RECV: Frame channelId: 3, bodyFrame: 
> [QueueDeclareBodyImpl: ticket=0, 
> queue=TransactionTimeoutTest-testConsumerIdleCommit, passive=false, 
> durable=true, exclusive=false, autoDelete=false, nowait=false, arguments=null]
> IoReceiver - /127.0.0.1:50620 2014-05-23 08:00:17,587 DEBUG 
> [server.store.berkeleydb.BDBMessageStore] Create 
> [name=TransactionTimeoutTest-testConsumerIdleCommit, categoryClass=interface 
> org.apache.qpid.server.model.Queue, type=Queue, 
> id=848209cf-5c99-4b95-8488-c07973eb199f]
> IoReceiver - /127.0.0.1:50620 2014-05-23 08:00:17,587 DEBUG 
> [server.store.berkeleydb.BDBMessageStore] Storing configured object record: 
> [name=TransactionTimeoutTest-testConsumerIdleCommit, categoryClass=interface 
> org.apache.qpid.server.model.Queue, type=Queue, 
> id=848209cf-5c99-4b95-8488-c07973eb199f]
> test:VirtualHostHouseKeepingTask 2014-05-23 08:00:17,589 DEBUG 
> [qpid.server.virtualhost.AbstractVirtualHost] Checking message status for 
> queue: TransactionTimeoutTest-testConsumerIdleCommit
> test:VirtualHostHouseKeepingTask 2014-05-23 08:00:17,589 ERROR 
> [qpid.server.virtualhost.AbstractVirtualHost] Exception in housekeeping for 
> queue: TransactionTimeoutTest-testConsumerIdleCommit
> java.lang.NullPointerException
>         at 
> org.apache.qpid.server.queue.AbstractQueue.checkMessageStatus(AbstractQueue.java:1999)
>         at 
> org.apache.qpid.server.virtualhost.AbstractVirtualHost$VirtualHostHouseKeepingTask.execute(AbstractVirtualHost.java:935)
>         at 
> org.apache.qpid.server.virtualhost.HouseKeepingTask$1.run(HouseKeepingTask.java:61)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at javax.security.auth.Subject.doAs(Subject.java:356)
>         at 
> org.apache.qpid.server.virtualhost.HouseKeepingTask.run(HouseKeepingTask.java:54)
>         at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
>         at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
>         at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
>         at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>         at java.lang.Thread.run(Thread.java:744)
> IoReceiver - /127.0.0.1:50620 2014-05-23 08:00:17,598 INFO 
> [qpid.message.queue.created] [con:952(guest@/127.0.0.1:50620/test)/ch:3] 
> [vh(/test)/qu(TransactionTimeoutTest-testConsumerIdleCommit)] QUE-1001 : 
> Create : Durable
>  {noformat} 



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to