0 Replies Latest reply on Feb 7, 2012 4:52 PM by mroslyak

    Aggregator with HawtDB repository throws EOFException

    mroslyak

      Hello,

       

      I am using servicemix 4.4.1-fuse-00-08

       

      In my route definition I am using aggregator with repository

       

      Ocassionally, HawtDB starts throwing exceptions and stops processing exchanges

      If I restart servicemix, the errors go away and everything behaves as expected until some random time in the future.

       

       

      HawtDBAggregationRepository errrorRepo = new HawtDBAggregationRepository("errors", "data/errors.dat");

       

      ...

      .aggregate(simple("${body.type}"),errorAggregator)

      .aggregationRepository(errrorRepo)

      .completionTimeout(300000).completionSize(500)

      ....

       

      Any help is appreciated.

       

       

       

      thread #134 - AggregateTimeoutChecker]  Exception occurred during purge task. This exception will be ignored.

      org.fusesource.hawtdb.api.IndexException: java.io.EOFException

              at org.fusesource.hawtdb.api.AbstractStreamPagedAccessor.load(AbstractStreamPagedAccessor.java:66)[238:org.fusesource.hawtdb:1.5]

              at org.fusesource.hawtdb.internal.index.BTreeIndex.loadNode(BTreeIndex.java:238)[238:org.fusesource.hawtdb:1.5]

              at org.fusesource.hawtdb.internal.index.BTreeIndex.root(BTreeIndex.java:158)[238:org.fusesource.hawtdb:1.5]

              at org.fusesource.hawtdb.internal.index.BTreeIndex.get(BTreeIndex.java:85)[238:org.fusesource.hawtdb:1.5]

              at org.apache.camel.component.hawtdb.HawtDBAggregationRepository$2.execute(HawtDBAggregationRepository.java:150)[237:org.apache.camel.camel-hawtdb:2.8.0.fuse-00-08]

              at org.apache.camel.component.hawtdb.HawtDBAggregationRepository$2.execute(HawtDBAggregationRepository.java:144)[237:org.apache.camel.camel-hawtdb:2.8.0.fuse-00-08]

              at org.apache.camel.component.hawtdb.HawtDBFile.doExecute(HawtDBFile.java:159)[237:org.apache.camel.camel-hawtdb:2.8.0.fuse-00-08]

              at org.apache.camel.component.hawtdb.HawtDBFile.execute(HawtDBFile.java:113)[237:org.apache.camel.camel-hawtdb:2.8.0.fuse-00-08]

              at org.apache.camel.component.hawtdb.HawtDBAggregationRepository.get(HawtDBAggregationRepository.java:144)[237:org.apache.camel.camel-hawtdb:2.8.0.fuse-00-08]

              at org.apache.camel.processor.aggregate.AggregateProcessor$AggregationTimeoutMap.onEviction(AggregateProcessor.java:634)[85:org.apache.camel.camel-core:2.8.0.fuse-00-08]

              at org.apache.camel.processor.aggregate.AggregateProcessor$AggregationTimeoutMap.onEviction(AggregateProcessor.java:605)[85:org.apache.camel.camel-core:2.8.0.fuse-00-08]

              at org.apache.camel.util.DefaultTimeoutMap.purge(DefaultTimeoutMap.java:202)[85:org.apache.camel.camel-core:2.8.0.fuse-00-08]

              at org.apache.camel.processor.aggregate.AggregateProcessor$AggregationTimeoutMap.purge(AggregateProcessor.java:617)[85:org.apache.camel.camel-core:2.8.0.fuse-00-08]

              at org.apache.camel.util.DefaultTimeoutMap.run(DefaultTimeoutMap.java:158)[85:org.apache.camel.camel-core:2.8.0.fuse-00-08]

              at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6.0_24]

              at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)[:1.6.0_24]

              at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)[:1.6.0_24]

              at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)[:1.6.0_24]

              at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)[:1.6.0_24]

              at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)[:1.6.0_24]

              at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[:1.6.0_24]

              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)[:1.6.0_24]

              at java.lang.Thread.run(Thread.java:662)[:1.6.0_24]

      Caused by: java.io.EOFException

              at org.fusesource.hawtdb.internal.page.ExtentInputStream.read(ExtentInputStream.java:80)[238:org.fusesource.hawtdb:1.5]

              at java.io.DataInputStream.readFully(DataInputStream.java:178)[:1.6.0_24]

              at java.io.DataInputStream.readFully(DataInputStream.java:152)[:1.6.0_24]

              at org.fusesource.hawtbuf.codec.AbstractBufferCodec.decode(AbstractBufferCodec.java:40)[239:org.fusesource.hawtbuf.hawtbuf:1.2]

              at org.fusesource.hawtbuf.codec.AbstractBufferCodec.decode(AbstractBufferCodec.java:30)[239:org.fusesource.hawtbuf.hawtbuf:1.2]

              at org.fusesource.hawtdb.internal.index.BTreeNode.read(BTreeNode.java:207)[238:org.fusesource.hawtdb:1.5]

              at org.fusesource.hawtdb.internal.index.BTreeNode$DataPagedAccessor.decode(BTreeNode.java:228)[238:org.fusesource.hawtdb:1.5]

              at org.fusesource.hawtdb.internal.index.BTreeNode$DataPagedAccessor.decode(BTreeNode.java:214)[238:org.fusesource.hawtdb:1.5]

              at org.fusesource.hawtdb.api.AbstractStreamPagedAccessor.load(AbstractStreamPagedAccessor.java:64)[238:org.fusesource.hawtdb:1.5]

              ... 22 more