activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nathaniel Mar (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (AMQ-5161) NullPointerException during async startup
Date Sun, 11 May 2014 09:10:15 GMT

    [ https://issues.apache.org/jira/browse/AMQ-5161?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13994484#comment-13994484
] 

Nathaniel Mar commented on AMQ-5161:
------------------------------------

I'm brand new to ActiveMQ, but am interested in contributing, so I decided to take a stab
at this ticket.

It seems that there may be a bit of a race condition when using the async start option on
an embedded broker. I ran the provided unit test, and noticed that the NPE did not appear
when I added a short delay between starting the broker and then initiating the connection
to the broker. Specifically, what happens is that the main thread attempts to connect to the
broker before the broker start up thread has completed (i.e. the broker has set its broker
service instance).

I haven't diffed the 5.9 and 5.9.1 versions so I'm not sure what could have caused this to
become a new issue.

As mentioned, I don't know much about the internal workings of ActiveMQ. However, as a suggestion,
if the above is an accurate explanation of this issue, perhaps one possible fix would be to
the TransportConnection class to wait until the broker has fully started to initiate the connection
-- something along the lines of adding a "while (!broker.getBrokerService().isStarted()) "
with that method already provided by the library.

Any thoughts?

> NullPointerException during async startup
> -----------------------------------------
>
>                 Key: AMQ-5161
>                 URL: https://issues.apache.org/jira/browse/AMQ-5161
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.9.1
>            Reporter: james
>         Attachments: QueueService2Test.java
>
>
> I'm using an embedded broker with asynchronous startup enabled.  My setup worked using
5.9.0.  When i upgraded to 5.9.1, i started getting this exception on startup:
> {noformat}
> javax.jms.JMSException: java.lang.NullPointerException
>   at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:54)
>   at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1408)
>   at org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1513)
>   at org.apache.activemq.ActiveMQConnection.setClientID(ActiveMQConnection.java:417)
>   at <...internal system startup stack trace...>
> Caused by: java.lang.NullPointerException
>   at org.apache.activemq.broker.jmx.ManagedRegionBroker.addConnection(ManagedRegionBroker.java:232)
>   at org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:92)
>   at org.apache.activemq.advisory.AdvisoryBroker.addConnection(AdvisoryBroker.java:91)
>   at org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:92)
>   at org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:92)
>   at org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:92)
>   at org.apache.activemq.broker.MutableBrokerFilter.addConnection(MutableBrokerFilter.java:97)
>   at org.apache.activemq.broker.TransportConnection.processAddConnection(TransportConnection.java:759)
>   at org.apache.activemq.command.ConnectionInfo.visit(ConnectionInfo.java:139)
>   at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:291)
>   at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:145)
>   at org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116)
>   at org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
>   at org.apache.activemq.transport.vm.VMTransport.iterate(VMTransport.java:247)
>   at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:133)
>   at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48)
>   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
>   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
>   at java.lang.Thread.run(Thread.java:662)
> {noformat}



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

Mime
View raw message