FederatedRepositoryConnection Can Freeze When Exception Thrown from
RepositoryConnection.execute(...)
-----------------------------------------------------------------------------------------------------
Key: DNA-572
URL:
https://jira.jboss.org/jira/browse/DNA-572
Project: DNA
Issue Type: Bug
Components: Connectors, Federation
Affects Versions: 0.6
Reporter: Brian Carothers
Priority: Minor
Fix For: Future Releases
If a runtime exception is thrown from with a RepositoryConnection.execute method, the
FederatedRepositoryConnector can get stuck waiting infinitely for a countdown latch on the
FederatedRequest.
The stack trace for the blocked main thread follows:
Thread [main] (Suspended)
Unsafe.park(boolean, long) line: not available [native method]
LockSupport.park(Object) line: 158
CountDownLatch$Sync(AbstractQueuedSynchronizer).parkAndCheckInterrupt() line: 747
CountDownLatch$Sync(AbstractQueuedSynchronizer).doAcquireSharedInterruptibly(int) line:
905
CountDownLatch$Sync(AbstractQueuedSynchronizer).acquireSharedInterruptibly(int) line:
1217
CountDownLatch.await() line: 207
FederatedRequest.await() line: 97
JoinRequestProcessor.process(BlockingQueue<FederatedRequest>) line: 141
FederatedRepositoryConnection.execute(ExecutionContext, Request) line: 221
Graph.execute(Request) line: 267
Graph$Batch.execute() line: 4592
GraphSession<Payload,PropertyPayload>.save() line: 813
SessionCache.save() line: 374
JcrSession.save() line: 876
SetPropertyStringTest.testSetNullStringArray() line: 362
NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native
method]
NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25
Method.invoke(Object, Object...) line: 597
SetPropertyStringTest(TestCase).runTest() line: 168
SetPropertyStringTest(TestCase).runBare() line: 134
TestResult$1.protect() line: 110
JCRTestResult(TestResult).runProtected(Test, Protectable) line: 128
JCRTestResult(TestResult).run(TestCase) line: 113
SetPropertyStringTest(TestCase).run(TestResult) line: 124
SetPropertyStringTest(AbstractJCRTest).run(TestResult) line: 406
TestSuite.runTest(Test, TestResult) line: 232
TestSuite.run(TestResult) line: 227
TestSuite.runTest(Test, TestResult) line: 232
TestSuite.run(TestResult) line: 227
AllTests(JUnit38ClassRunner).run(RunNotifier) line: 81
JUnit4TestClassReference(JUnit4TestReference).run(TestExecution) line: 46
TestExecution.run(ITestReference[]) line: 38
RemoteTestRunner.runTests(String[], String, TestExecution) line: 467
RemoteTestRunner.runTests(TestExecution) line: 683
RemoteTestRunner.run() line: 390
RemoteTestRunner.main(String[]) line: 197
This condition can be reproduced by forcing a NullPointerException in the execute method
of a connection (e.g., the SimpleJpaConnection).
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira