Я пишу адаптер для использования очереди хроники в администраторе удаленной службы Apache Aries. Он отлично работает, когда я использую только один поток. С более чем одним потоком я получаю исключения, как показано ниже.
Любая идея, что я делаю неправильно?
Для справки, это мой код: https://github.com/cschneider/rsa-chronicle-provider/blob/master/src/test/java/org/apache/aries/rsa/provider/chronicle/ChronicleProviderTest.java
Вы можете увидеть исключение, если увеличите количество потоков в исполнителе.
Exception in thread "pool-3-thread-2" java.nio.BufferOverflowException
at net.openhft.chronicle.bytes.AbstractBytes.writePosition(AbstractBytes.java:182)
at net.openhft.chronicle.bytes.AbstractBytes.writePosition(AbstractBytes.java:29)
at net.openhft.chronicle.wire.AbstractWire.writeHeader0(AbstractWire.java:183)
at net.openhft.chronicle.wire.AbstractWire.writeHeader(AbstractWire.java:171)
at net.openhft.chronicle.queue.impl.single.SingleChronicleQueueExcerpts$StoreAppender.append(SingleChronicleQueueExcerpts.java:252)
at net.openhft.chronicle.queue.impl.single.SingleChronicleQueueExcerpts$StoreAppender.writeBytes(SingleChronicleQueueExcerpts.java:153)
at org.apache.aries.rsa.provider.chronicle.ChronicleInvocationHandler.invoke(ChronicleInvocationHandler.java:45)
at com.sun.proxy.$Proxy7.callOneWay(Unknown Source)
at org.apache.aries.rsa.provider.chronicle.ChronicleProviderTest$1.run(ChronicleProviderTest.java:87)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)