[dna-issues] [JBoss JIRA] Updated: (DNA-572) FederatedRepositoryConnection Can Freeze When Exception Thrown from RepositoryConnection.execute(...)
Brian Carothers (JIRA)
jira-events at lists.jboss.org
Sun Jan 3 22:57:30 EST 2010
[ https://jira.jboss.org/jira/browse/DNA-572?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Brian Carothers updated DNA-572:
--------------------------------
Attachment: DNA-572.patch
The attached patch corrects one possible source of freezes in the federated connector by ensuring that a FederatedRequest is still submitted if the projection fails.
> 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
>
> Attachments: DNA-572.patch
>
>
> 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
More information about the dna-issues
mailing list