[
https://issues.apache.org/jira/browse/JENA-100?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13085618#comment-13085618
]
Andy Seaborne commented on JENA-100:
------------------------------------
Patch applied and a build done, thanks
Simon - please provide test cases for your use case.
> QueryIteratorBase concurrency issues
> ------------------------------------
>
> Key: JENA-100
> URL: https://issues.apache.org/jira/browse/JENA-100
> Project: Jena
> Issue Type: Bug
> Components: ARQ
> Reporter: Stephen Allen
> Attachments: JENA-100-r1157891.patch
>
>
> QueryIteratorBase appears to have some concurrency bugs relating to
> cancelling a query:
> 1) The cancel() and cancelAllowContinue() methods did not have large enough
> synchronized blocks (they also used "this" as the lock, which is not
> recommended)
> 2) The order of setting the cancellation flags and the notifying subclasses
> via the requestCancel() method was incorrect
> 3) The visibility and happens-before relationships were incorrect for the
> requestingCancel and abortIterator variables
> The cancelAllowContinue() feature adds a lot of complexity in terms of
> visibility and ordering. Unfortunately it is hard to write test cases for
> these types of concurrency issues, so the existing tests did not uncover the
> issues.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira