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

Gary Tully commented on AMQ-1994:
---------------------------------

I just had a peek at trunk and access to deliveredMessages is properly 
synchronised. There have been some changes in this area s the line numbers from 
your stack trace and trunk are off by a margin.

I suspect that this issue is resolved for the upcoming 5.2 release.
It may be worth trying a current 5.3-SNAPSHOT or the RC2 candidate 5.2 release
You can get the binary distributions here:
http://people.apache.org/~gtully/staging-repos/activemq-5.2.0/org/apache/activemq/apache-activemq/5.2.0



> NullPointerException in ActiveMQMessageConsumer#acknowledge(ActiveMQMessage) 
> on acknowledgment. 
> ------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-1994
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1994
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: JMS client
>    Affects Versions: 5.1.0
>         Environment: Windows Terminal Server 2003 / Intel x86 based
>            Reporter: MZ
>
> Hi Folks!
> We have a problem on acknowledge message with an ActiveMQ 5 Server. We are 
> using AqtiveMQ for multi-threaded message processing. On a few Threads we 
> continuously receiving messages, add them to a BlockingQueue and  processing 
> them with a another thread reading on the Queue. After processing is done, 
> the message is acknowledged. We using durable consumers to make sure that we 
> won't miss a message on a failure.
> We sometimes (one time in 2-3 weeks) receive the following exception on 
> acknowledging a message (decision dept is name of the RCP application):
> 2008-10-28 08:20:21,215 WARN  [main] 
> org.csstudio.nams.application.department.decision.DecisionDepartmentActivator:
>  unable to acknowledge message: Alarmnachricht: JMS-Message: 
> ActiveMQMapMessage {commandId = 401366, responseRequired = true, messageId = 
> ID:krynfsb-52783-1224106527774-1:0:1:133789:1, originalDestination = null, 
> originalTransactionId = null, producerId = 
> ID:krynfsb-52783-1224106527774-1:0:1:133789, destination = topic://ALARM, 
> transactionId = null, expiration = 1225182021162, timestamp = 1225178421162, 
> arrival = 0, correlationId = null, replyTo = null, persistent = true, type = 
> null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = 
> null, compressed = false, userID = null, content = [EMAIL PROTECTED], 
> marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, 
> size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, 
> droppable = false} ActiveMQMapMessage{ theTable = { ... } }
> org.csstudio.nams.service.messaging.exceptions.MessagingException: 
> acknowledge failed
>       at 
> org.csstudio.nams.service.messaging.declaration.DefaultNAMSMessage.acknowledge(DefaultNAMSMessage.java:51)
>       at 
> org.csstudio.nams.application.department.decision.DecisionDepartmentActivator.receiveMessagesUntilApplicationQuits(DecisionDepartmentActivator.java:878)
>       at 
> org.csstudio.nams.application.department.decision.DecisionDepartmentActivator.performNormalWork(DecisionDepartmentActivator.java:489)
>       at 
> org.csstudio.nams.application.department.decision.DecisionDepartmentActivator.start(DecisionDepartmentActivator.java:404)
>       at 
> org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:169)
>       at 
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
>       at 
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
>       at 
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
>       at 
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>       at java.lang.reflect.Method.invoke(Unknown Source)
>       at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:508)
>       at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447)
>       at org.eclipse.equinox.launcher.Main.run(Main.java:1173)
> Caused by: javax.jms.JMSException: java.lang.NullPointerException
>       at 
> org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:46)
>       at 
> org.apache.activemq.command.ActiveMQMessage.acknowledge(ActiveMQMessage.java:99)
>       at 
> org.csstudio.nams.service.messaging.impl.jms.JMSConsumer$1.acknowledge(JMSConsumer.java:211)
>       at 
> org.csstudio.nams.service.messaging.declaration.DefaultNAMSMessage.acknowledge(DefaultNAMSMessage.java:49)
>       ... 15 more
> Caused by: java.lang.NullPointerException
>       at java.util.LinkedList.clear(Unknown Source)
>       at 
> org.apache.activemq.ActiveMQMessageConsumer.acknowledge(ActiveMQMessageConsumer.java:761)
>       at 
> org.apache.activemq.ActiveMQSession.acknowledge(ActiveMQSession.java:1383)
>       at 
> org.apache.activemq.ActiveMQMessageConsumer$1.execute(ActiveMQMessageConsumer.java:445)
>       at 
> org.apache.activemq.command.ActiveMQMessage.acknowledge(ActiveMQMessage.java:95)
>       ... 17 more
> Up from this time, we always get the following trace on receiving:
> 2008-10-28 08:20:37,808 FATAL [JMSConsumer#WorkThread-1] 
> org.csstudio.nams.service.messaging.impl.jms.JMSConsumer$WorkThread: 
> Unexpected exception during recieving message from jms
> java.lang.NullPointerException
>       at java.util.LinkedList.addBefore(Unknown Source)
>       at java.util.LinkedList.addFirst(Unknown Source)
>       at 
> org.apache.activemq.ActiveMQMessageConsumer.beforeMessageIsConsumed(ActiveMQMessageConsumer.java:649)
>       at 
> org.apache.activemq.ActiveMQMessageConsumer.receive(ActiveMQMessageConsumer.java:429)
>       at 
> org.csstudio.nams.service.messaging.impl.jms.JMSConsumer$WorkThread.run(JMSConsumer.java:85)
> Do you know this problem? Do you have some ideas what happens?
> Thanks,
> Gösta and Matthias

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

Reply via email to