Hi Camel users

I am trying to recover data from a Camel aggregator persistent hawtdb
repository (Camel 2.9.x). The aggregator was killed unexpectedly because of
an out-of-memory-error.

I wrote a small Java class that opens the hawtdb file, creates a
HawtDBAggregationRepository instance that uses the file and tried to get
the index keys and aggregations from it.

I was able to get almost all aggregations from it, only two of them throw
the exception below when I try to access them. Can I access them in another
way to recover the aggregated data?

Thanks for any help
Stephan



WARN | HawtDBFile                     | Error executing work Getting key
[7601003010220_XML400]. Will do rollback.
org.fusesource.hawtdb.api.IndexException: java.io.EOFException
    at
org.fusesource.hawtdb.api.AbstractStreamPagedAccessor.load(AbstractStreamPagedAccessor.java:66)
    at
org.fusesource.hawtdb.internal.index.BTreeIndex.loadNode(BTreeIndex.java:238)
    at
org.fusesource.hawtdb.internal.index.BTreeNode.getChild(BTreeNode.java:261)
    at
org.fusesource.hawtdb.internal.index.BTreeNode.getLeafNode(BTreeNode.java:772)
    at
org.fusesource.hawtdb.internal.index.BTreeNode.get(BTreeNode.java:652)
    at
org.fusesource.hawtdb.internal.index.BTreeIndex.get(BTreeIndex.java:85)
    at
org.apache.camel.component.hawtdb.HawtDBAggregationRepository$2.execute(HawtDBAggregationRepository.java:150)
    at
org.apache.camel.component.hawtdb.HawtDBAggregationRepository$2.execute(HawtDBAggregationRepository.java:144)
    at
org.apache.camel.component.hawtdb.HawtDBFile.doExecute(HawtDBFile.java:165)
    at
org.apache.camel.component.hawtdb.HawtDBFile.execute(HawtDBFile.java:119)
    at
org.apache.camel.component.hawtdb.HawtDBAggregationRepository.get(HawtDBAggregationRepository.java:144)
    at
ch.visana.ke.concierge.VisanaHawtDbRecovery.readExchangeByKeyFromRepository(VisanaHawtDbRecovery.java:81)
    at
ch.visana.ke.concierge.VisanaHawtDbRecovery.testGetAggregationExchangeByKey(VisanaHawtDbRecovery.java:70)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
    at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
    at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
    at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
    at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
    at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
    at org.junit.rules.TestWatchman$1.evaluate(TestWatchman.java:48)
    at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
    at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
    at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
    at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
    at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: java.io.EOFException
    at
org.fusesource.hawtdb.internal.page.ExtentInputStream.read(ExtentInputStream.java:80)
    at java.io.DataInputStream.readFully(DataInputStream.java:178)
    at java.io.DataInputStream.readFully(DataInputStream.java:152)
    at
org.fusesource.hawtbuf.codec.AbstractBufferCodec.decode(AbstractBufferCodec.java:40)
    at
org.fusesource.hawtbuf.codec.AbstractBufferCodec.decode(AbstractBufferCodec.java:30)
    at
org.fusesource.hawtdb.internal.index.BTreeNode.read(BTreeNode.java:207)
    at
org.fusesource.hawtdb.internal.index.BTreeNode$DataPagedAccessor.decode(BTreeNode.java:228)
    at
org.fusesource.hawtdb.internal.index.BTreeNode$DataPagedAccessor.decode(BTreeNode.java:214)
    at
org.fusesource.hawtdb.api.AbstractStreamPagedAccessor.load(AbstractStreamPagedAccessor.java:64)
    ... 38 more

Reply via email to