[CDO] Problem with concurrent read and write threads [message #987716] |
Tue, 27 November 2012 12:29  |
Eclipse User |
|
|
|
I'm noticing a very strange behavior in the following test I made using concurrent access.
Scenario: I have 2 threads, 1 reader and 1 writer, executing concurrently. We never have write conflicts, because we have only 1 writer.
The threads are executing without any delay, because I want to see how CDO handles many requests. For each iteration, a new session is created.
During the test I get some exceptions (NPE). If I don't make the commit then there isn't any exception.
!ENTRY org.eclipse.net4j 4 0 2012-11-27 16:31:14.217
!MESSAGE NullPointerException
!STACK 0
java.lang.NullPointerException
at org.eclipse.emf.cdo.spi.common.protocol.CDODataInputImpl.readCDOBranch(CDODataInputImpl.java:188)
at org.eclipse.emf.cdo.spi.common.protocol.CDODataInputImpl.readCDOCommitInfo(CDODataInputImpl.java:276)
at org.eclipse.emf.cdo.internal.net4j.protocol.CommitNotificationIndication.indicating(CommitNotificationIndication.java:36)
at org.eclipse.emf.cdo.internal.net4j.protocol.CDOClientIndication.indicating(CDOClientIndication.java:56)
at org.eclipse.net4j.signal.Indication.doExtendedInput(Indication.java:57)
at org.eclipse.net4j.signal.Signal.doInput(Signal.java:328)
at org.eclipse.net4j.signal.Indication.execute(Indication.java:51)
at org.eclipse.net4j.signal.Signal.runSync(Signal.java:253)
at org.eclipse.net4j.signal.Signal.run(Signal.java:149)
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:662)
I checked and the writes didn't failed, everything was persisted.
Is this an "expected" behavior (let's say, a known limitation) when opening and closing so many CDOSession in a very short time? Or can we say it is a bug?
I attached the test java file.
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.03778 seconds