You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Swen Moczarski (JIRA)" <ji...@apache.org> on 2009/06/08 11:34:39 UTC

[jira] Created: (AMQ-2284) ClassCastException in KahaDB

ClassCastException in KahaDB
----------------------------

                 Key: AMQ-2284
                 URL: https://issues.apache.org/activemq/browse/AMQ-2284
             Project: ActiveMQ
          Issue Type: Bug
          Components: Message Store
    Affects Versions: 5.3.0
         Environment: Linux, activemq-core and kahadb 5.3-SNAPSHOT from 2009-06-02
            Reporter: Swen Moczarski


We test the broker with the Kaha message store. After some time we get lots of class cast exceptions:

{noformat}
[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
{noformat}

For the messages we use the persistence delivery mode. 

Our configuration (in Spring) for the persistance adapter:

{code:xml} 
<property name="persistenceAdapter">
   <bean class="org.apache.activemq.store.kahadb.KahaDBStore">
      <property name="directory" value="/message/store/dir" />
   </bean>
</property>
{code} 

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


[jira] Updated: (AMQ-2284) ClassCastException in KahaDB

Posted by "Bruce Snyder (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-2284?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Bruce Snyder updated AMQ-2284:
------------------------------

    Fix Version/s: 5.5.0
                       (was: 5.4.1)

> ClassCastException in KahaDB
> ----------------------------
>
>                 Key: AMQ-2284
>                 URL: https://issues.apache.org/activemq/browse/AMQ-2284
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Message Store
>    Affects Versions: 5.3.0
>         Environment: Linux, activemq-core and kahadb 5.3-SNAPSHOT from 2009-06-02
>            Reporter: Swen Moczarski
>             Fix For: 5.5.0
>
>
> We test the broker with the Kaha message store. After some time we get lots of class cast exceptions:
> {noformat}
> [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
> {noformat}
> For the messages we use the persistence delivery mode. 
> Our configuration (in Spring) for the persistance adapter:
> {code:xml} 
> <property name="persistenceAdapter">
>    <bean class="org.apache.activemq.store.kahadb.KahaDBStore">
>       <property name="directory" value="/message/store/dir" />
>    </bean>
> </property>
> {code} 

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