Manfred Koch created AMQ-4597:
---------------------------------
Summary: IOException on message broker startup when using durable
subscription and amqPersistenceAdapter
Key: AMQ-4597
URL: https://issues.apache.org/jira/browse/AMQ-4597
Project: ActiveMQ
Issue Type: Bug
Components: Message Store
Affects Versions: 5.8.0, 5.7.0
Reporter: Manfred Koch
Attachments: ActiveMQDurableSubscriberTest.java, activemq.log,
activemq.xml, wrapper.log
IOException on message broker startup when using durable subscription and
amqPersistenceAdapter.
This happens after killing the JVM.
*How to reproduce*
# Install ActiveMQ using amqPersistenceAdapter. See attached [^activemq.xml]
(i) With KahaDB the issue does not occur
# Run ActiveMQ as Windows service (It may also work if you run it as java
process)
# Run the unit test [^ActiveMQDurableSubscriberTest.java]
# While the test is running kill the ActiveMQ *Java* process
# The unit test will stop. Terminate it.
# Wait 30 seconds. The wrapper will try to restart the ActiveMQ broker.
# (!) Broker restart fails. See [^activemq.log] or [^wrapper.log]
*Stacktrace*
2013-06-24 15:24:18,071 | ERROR |
TopicStorePrefetch(be9f6240-8786-42b0-8a9e-7352b3c95eb2,MyDurableSubscription0)
OFFLINE:1:2 -
org.apache.activemq.broker.region.cursors.TopicStorePrefetch@edbca8:MyBroadcastTopic,batchResetNeeded=false,storeHasMessages=false,size=0,cacheEnabled=true,maxBatchSize:200
Failed to get the outstanding message count from the store |
org.apache.activemq.broker.region.cursors.TopicStorePrefetch |
WrapperSimpleAppMain
java.io.IOException
at
org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:45)
at
org.apache.activemq.store.amq.AMQTopicMessageStore.getMessageCount(AMQTopicMessageStore.java:205)
at
org.apache.activemq.broker.region.cursors.TopicStorePrefetch.getStoreSize(TopicStorePrefetch.java:84)
at
org.apache.activemq.broker.region.cursors.AbstractStoreCursor.resetSize(AbstractStoreCursor.java:64)
at
org.apache.activemq.broker.region.cursors.TopicStorePrefetch.<init>(TopicStorePrefetch.java:55)
at
org.apache.activemq.broker.region.cursors.StoreDurableSubscriberCursor.add(StoreDurableSubscriberCursor.java:119)
at
org.apache.activemq.broker.region.PrefetchSubscription.add(PrefetchSubscription.java:589)
at
org.apache.activemq.broker.region.DurableTopicSubscription.add(DurableTopicSubscription.java:109)
at
org.apache.activemq.broker.region.Topic.addSubscription(Topic.java:157)
at
org.apache.activemq.broker.region.TopicRegion.addSubscriptionsForDestination(TopicRegion.java:255)
at
org.apache.activemq.broker.region.AbstractRegion.addDestination(AbstractRegion.java:145)
at
org.apache.activemq.broker.region.RegionBroker.addDestination(RegionBroker.java:277)
at
org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
at
org.apache.activemq.advisory.AdvisoryBroker.addDestination(AdvisoryBroker.java:174)
at
org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
at
org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
at
org.apache.activemq.broker.MutableBrokerFilter.addDestination(MutableBrokerFilter.java:151)
at
org.apache.activemq.broker.region.AbstractRegion.start(AbstractRegion.java:98)
at
org.apache.activemq.broker.region.RegionBroker.start(RegionBroker.java:180)
at
org.apache.activemq.broker.jmx.ManagedRegionBroker.start(ManagedRegionBroker.java:119)
at org.apache.activemq.broker.BrokerFilter.start(BrokerFilter.java:157)
at org.apache.activemq.broker.BrokerFilter.start(BrokerFilter.java:157)
at
org.apache.activemq.broker.TransactionBroker.start(TransactionBroker.java:122)
at
org.apache.activemq.broker.BrokerService$5.start(BrokerService.java:2078)
at
org.apache.activemq.broker.BrokerService.doStartBroker(BrokerService.java:636)
at
org.apache.activemq.broker.BrokerService.startBroker(BrokerService.java:617)
at
org.apache.activemq.broker.BrokerService.start(BrokerService.java:553)
at
org.apache.activemq.xbean.XBeanBrokerService.afterPropertiesSet(XBeanBrokerService.java:60)
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.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1581)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1522)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:605)
at
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:925)
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:472)
at
org.apache.xbean.spring.context.ResourceXmlApplicationContext.<init>(ResourceXmlApplicationContext.java:64)
at
org.apache.xbean.spring.context.ResourceXmlApplicationContext.<init>(ResourceXmlApplicationContext.java:52)
at
org.apache.activemq.xbean.XBeanBrokerFactory$1.<init>(XBeanBrokerFactory.java:101)
at
org.apache.activemq.xbean.XBeanBrokerFactory.createApplicationContext(XBeanBrokerFactory.java:101)
at
org.apache.activemq.xbean.XBeanBrokerFactory.createBroker(XBeanBrokerFactory.java:65)
at
org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:71)
at
org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:54)
at
org.apache.activemq.console.command.StartCommand.startBroker(StartCommand.java:125)
at
org.apache.activemq.console.command.StartCommand.runTask(StartCommand.java:84)
at
org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)
at
org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand.java:150)
at
org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)
at
org.apache.activemq.console.command.ShellCommand.main(ShellCommand.java:104)
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.apache.activemq.console.Main.runTaskClass(Main.java:262)
at org.apache.activemq.console.Main.main(Main.java:115)
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.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:240)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at
org.apache.activemq.filter.MessageEvaluationContext.getMessage(MessageEvaluationContext.java:53)
at
org.apache.activemq.filter.MessageEvaluationContext.isDropped(MessageEvaluationContext.java:46)
at
org.apache.activemq.filter.PropertyExpression.evaluate(PropertyExpression.java:174)
at
org.apache.activemq.filter.ComparisonExpression$1.evaluate(ComparisonExpression.java:210)
at
org.apache.activemq.filter.ComparisonExpression.matches(ComparisonExpression.java:478)
at
org.apache.activemq.store.amq.AMQTopicMessageStore$MessageCounter.recoverMessageReference(AMQTopicMessageStore.java:231)
at
org.apache.activemq.store.kahadaptor.KahaReferenceStore.recoverReference(KahaReferenceStore.java:89)
at
org.apache.activemq.store.kahadaptor.KahaTopicReferenceStore.recoverSubscription(KahaTopicReferenceStore.java:338)
at
org.apache.activemq.store.amq.AMQTopicMessageStore.getMessageCount(AMQTopicMessageStore.java:202)
... 67 more
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira