Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Cannot Reproduce
    • Affects Version/s: 5.3.0
    • Fix Version/s: 5.x
    • Component/s: Message Store
    • Labels:
      None
    • Environment:

      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>
      

        Activity

          People

          • Assignee:
            Unassigned
            Reporter:
            Swen Moczarski
          • Votes:
            6 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development