[
https://issues.apache.org/jira/browse/AMQ-3804?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13254814#comment-13254814
]
Johno Crawford edited comment on AMQ-3804 at 4/16/12 5:10 PM:
--------------------------------------------------------------
If the stacktrace is fresh this could just mean that the stored destination
does not have any message references to the given message sequence (returns
null) and when we try and unbox the Long we hit an NPE.
was (Author: johno):
If the stacktrace is fresh this could just mean that the stored destination
does not have any message references to the given message sequence and when we
try and unbox the long we hit an NPE.
> NullPointerException logged every 30 seconds while attempting to clear
> expired messages
> ----------------------------------------------------------------------------------------
>
> Key: AMQ-3804
> URL: https://issues.apache.org/jira/browse/AMQ-3804
> Project: ActiveMQ
> Issue Type: Bug
> Components: Message Store
> Affects Versions: 5.6.0
> Environment: Windows XP SP3
> Reporter: Rajib Rashid
> Fix For: 5.6.0
>
>
> this is a duplicate of AMQ-3677 which was marked resolved. however i am still
> noticing this issue using the 5.6 snapshot release from apr 11, 2012. in this
> case activemq server was shutdown by terminating the java process. when the
> server is started again, following exception is logged every 30 seconds:
> {code}
> 2012-04-11 14:06:53,786 org.apache.activemq.broker.region.Topic[ActiveMQ
> Broker[ZyrionMessageBus] Scheduler]: (ERROR) ( Topic.java:683) Failed to
> remove expired Message from the store
> java.lang.NullPointerException
> at
> org.apache.activemq.store.kahadb.MessageDatabase.removeAckLocation(MessageDatabase.java:2005)
> at
> org.apache.activemq.store.kahadb.MessageDatabase.updateIndex(MessageDatabase.java:1259)
> at
> org.apache.activemq.store.kahadb.MessageDatabase$15.execute(MessageDatabase.java:1046)
> at org.apache.kahadb.page.Transaction.execute(Transaction.java:769)
> at
> org.apache.activemq.store.kahadb.MessageDatabase.process(MessageDatabase.java:1044)
> at
> org.apache.activemq.store.kahadb.MessageDatabase$13.visit(MessageDatabase.java:977)
> at
> org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand.visit(KahaRemoveMessageCommand.java:220)
> at
> org.apache.activemq.store.kahadb.MessageDatabase.process(MessageDatabase.java:969)
> at
> org.apache.activemq.store.kahadb.MessageDatabase.store(MessageDatabase.java:881)
> at
> org.apache.activemq.store.kahadb.MessageDatabase.store(MessageDatabase.java:863)
> at
> org.apache.activemq.store.kahadb.KahaDBStore$KahaDBTopicMessageStore.doAcknowledge(KahaDBStore.java:715)
> at
> org.apache.activemq.store.kahadb.KahaDBStore$KahaDBTopicMessageStore.acknowledge(KahaDBStore.java:701)
> at
> org.apache.activemq.store.kahadb.KahaDBTransactionStore.acknowledge(KahaDBTransactionStore.java:519)
> at
> org.apache.activemq.store.kahadb.KahaDBTransactionStore$2.acknowledge(KahaDBTransactionStore.java:222)
> at org.apache.activemq.broker.region.Topic.acknowledge(Topic.java:489)
> at
> org.apache.activemq.broker.region.Topic.messageExpired(Topic.java:681)
> at org.apache.activemq.broker.region.Topic.doBrowse(Topic.java:562)
> at org.apache.activemq.broker.region.Topic.access$100(Topic.java:62)
> at org.apache.activemq.broker.region.Topic$6.run(Topic.java:662)
> at
> org.apache.activemq.thread.SchedulerTimerTask.run(SchedulerTimerTask.java:33)
> at java.util.TimerThread.mainLoop(Unknown Source)
> at java.util.TimerThread.run(Unknown Source)
> {code}
> here is the server configuration:
> {code}
> <beans
> xmlns="http://www.springframework.org/schema/beans"
> xmlns:amq="http://activemq.apache.org/schema/core"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
> http://activemq.apache.org/schema/core
> http://activemq.apache.org/schema/core/activemq-core.xsd">
> <!-- Allows us to use system properties as variables in this configuration
> file -->
> <bean
> class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>
>
> <!-- Configure the ActiveMQ broker -->
> <broker
> xmlns="http://activemq.apache.org/schema/core"
> brokerName="ZyrionMessageBus"
> useJmx="false"
> dataDirectory="${activemq.base}/../../utils/spool/jms"
> deleteAllMessagesOnStartup="false"
> advisorySupport="false"
> offlineDurableSubscriberTimeout="7200000"
> offlineDurableSubscriberTaskSchedule="1800000">
> [...]
> <!-- Configure message persistence for the broker -->
> <persistenceAdapter>
> <kahaDB directory="${activemq.base}/../../utils/spool/jms/kahadb"
> ignoreMissingJournalfiles="true" checkForCorruptJournalFiles="true"
> checksumJournalFiles="true"/>
> </persistenceAdapter>
> {code}
> i can provide a copy of the kahadb directory if necessary to duplicate the
> issue. let me know if you require any additional information. thanks
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira