[ https://issues.apache.org/jira/browse/JENA-2151?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17402734#comment-17402734 ]
Holger Knublauch commented on JENA-2151: ---------------------------------------- Yes the warnings are in TQ tracking code. The iterators may not be exhausted because SHACL/SPIN functions only walk to the first result binding. You know better than I do what the contracts of Iter should be, so whatever works best is of course fine for me. If you say the change should go into SolveRX3 then perfectly fine, as long as know that this will be fixed from the next releases onwards. Meanwhile we can live with the patched up jar file. Returning an ExtendedIterator sounds good. > Iter.filter does not close nested iterator > ------------------------------------------ > > Key: JENA-2151 > URL: https://issues.apache.org/jira/browse/JENA-2151 > Project: Apache Jena > Issue Type: Bug > Affects Versions: Jena 4.1.0 > Reporter: Holger Knublauch > Priority: Major > Attachments: IteratorFilter.java > > > We recently attempted to upgrade our product to Jena 4.1.0 but noticed > unclosed iterator warnings. I believe I have tracked it down to the fact that > Iter.filter does not return a Closeable iterator and therefore does not close > its nested (stream) iterator. I am attaching an implementation class that > seems to fix it. With this, org.apache.jena.atlas.iterator.Iter.filter simply > need to become > {code:java} > public static <T> Iterator<T> filter(final Iterator<? extends T> stream, > final Predicate<T> filter) { > return new IteratorFilter<T>(stream, filter); > } > {code} > (Although Iter.filter hasn't changed for a while, I suspect some other > changes to Jena caused the SPARQL engine to use it, and this has broken some > scenarios for us - in particular calling SPIN/SHACL-SPARQL functions with > BGPs in the WHERE clause). -- This message was sent by Atlassian Jira (v8.3.4#803005)