[ 
https://issues.apache.org/jira/browse/JENA-100?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andy Seaborne resolved JENA-100.
--------------------------------

    Resolution: Fixed
      Assignee: Andy Seaborne

> 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
>            Assignee: Andy Seaborne
>         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

        

Reply via email to