Github user ehedgehog commented on the issue:
https://github.com/apache/jena/pull/166
(Moving from mailing list)
Andy had said:
>> (/me not entirely convinced that 'close' is always called for all
>> points where cancel triggers everywhere)
Yes. I've just had a look over some of the code and it
certainly wasn't obvious in that look that the query
ends up closing the result iterator. I could have missed
something easily. But if there's a problem there its
more general than the issue with QueryInterDistinct and
deserves its own JIRA?
But in any case cancel() is [typically] called from the
timeout thread, so it would surely be thread-unsafe for
the cancel methods to go calling close() while the query
thread might be working on shared state, independently
of worries about close() always being called.
[A look at the codebase shows that there are three
classes with requestSubCancel() closing, not cancelling,
other iterators:
AnstractIterHashJoin
QueryIterDistinctReduced
QueryIter2LoopOnLeft
which suggests these should be looked at in case there
might be a similar cancellation problem]
How should we make progress on this?
Chris
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---