Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Cannot Reproduce
-
5.3.0
-
None
-
Linux, activemq-core and kahadb 5.3-SNAPSHOT from 2009-06-02
Description
We test the broker with the Kaha message store. After some time we get lots of class cast exceptions:
[2009-06-06 06:01:22,047] [QueueThread:queue://xxx] [ERROR] [org.apache.activemq.broker.region.cursors.AbstractStoreCursor] [Failed to fill batch] java.lang.ClassCastException: java.lang.Long cannot be cast to org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys at org.apache.activemq.store.kahadb.KahaDBStore$KahaDBMessageStore$4.execute(KahaDBStore.java:228) at org.apache.kahadb.page.Transaction.execute(Transaction.java:728) at org.apache.activemq.store.kahadb.KahaDBStore$KahaDBMessageStore.recoverNextMessages(KahaDBStore.java:221) at org.apache.activemq.broker.region.cursors.QueueStorePrefetch.doFillBatch(QueueStorePrefetch.java:81) at org.apache.activemq.broker.region.cursors.AbstractStoreCursor.fillBatch(AbstractStoreCursor.java:227) at org.apache.activemq.broker.region.cursors.AbstractStoreCursor.hasNext(AbstractStoreCursor.java:134) at org.apache.activemq.broker.region.cursors.StoreQueueCursor.hasNext(StoreQueueCursor.java:131) at org.apache.activemq.broker.region.Queue.doPageIn(Queue.java:1280) at org.apache.activemq.broker.region.Queue.pageInMessages(Queue.java:1419) at org.apache.activemq.broker.region.Queue.iterate(Queue.java:1103) at org.apache.activemq.thread.DeterministicTaskRunner.runTask(DeterministicTaskRunner.java:84) at org.apache.activemq.thread.DeterministicTaskRunner$1.run(DeterministicTaskRunner.java:41) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) [2009-06-06 06:01:22,048] [QueueThread:queue://xxx] [ERROR] [org.apache.activemq.broker.region.cursors.AbstractStoreCursor] [Failed to fill batch] java.lang.RuntimeException: java.lang.ClassCastException: java.lang.Long cannot be cast to org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys at org.apache.activemq.broker.region.cursors.AbstractStoreCursor.fillBatch(AbstractStoreCursor.java:230) at org.apache.activemq.broker.region.cursors.AbstractStoreCursor.hasNext(AbstractStoreCursor.java:134) at org.apache.activemq.broker.region.cursors.StoreQueueCursor.hasNext(StoreQueueCursor.java:131) at org.apache.activemq.broker.region.Queue.doPageIn(Queue.java:1280) at org.apache.activemq.broker.region.Queue.pageInMessages(Queue.java:1419) at org.apache.activemq.broker.region.Queue.iterate(Queue.java:1103) at org.apache.activemq.thread.DeterministicTaskRunner.runTask(DeterministicTaskRunner.java:84) at org.apache.activemq.thread.DeterministicTaskRunner$1.run(DeterministicTaskRunner.java:41) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) Caused by: java.lang.ClassCastException: java.lang.Long cannot be cast to org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys at org.apache.activemq.store.kahadb.KahaDBStore$KahaDBMessageStore$4.execute(KahaDBStore.java:228) at org.apache.kahadb.page.Transaction.execute(Transaction.java:728) at org.apache.activemq.store.kahadb.KahaDBStore$KahaDBMessageStore.recoverNextMessages(KahaDBStore.java:221) at org.apache.activemq.broker.region.cursors.QueueStorePrefetch.doFillBatch(QueueStorePrefetch.java:81) at org.apache.activemq.broker.region.cursors.AbstractStoreCursor.fillBatch(AbstractStoreCursor.java:227) ... 10 more
For the messages we use the persistence delivery mode.
Our configuration (in Spring) for the persistance adapter:
<property name="persistenceAdapter"> <bean class="org.apache.activemq.store.kahadb.KahaDBStore"> <property name="directory" value="/message/store/dir" /> </bean> </property>