[ https://issues.apache.org/jira/browse/JENA-2151?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17403063#comment-17403063 ]
Andy Seaborne commented on JENA-2151: ------------------------------------- The link is to a 2 line change in `StageMatchTriple` needed to modify 4.1.0. You did a change for the `IteratorFilter`. This is no harder. (You didn't run the build for `IteratorFilter` - it doesn't build.) Replace: ``` Iterator<Binding> iter = graphIter.mapWith( r -> mapper(resultsBuilder, s, p, o, r)); //Iterator<Binding> iter = Iter.map(graphIter, r -> mapper(resultsBuilder, s, p, o, r)); return Iter.removeNulls(iter); ``` with ``` ExtendedIterator<Binding> iter = graphIter.mapWith( r -> mapper(resultsBuilder, s, p, o, r)).filterDrop(Objects::isNull); return iter; ``` The whole, short commit for this JIRA is specifically so it is easy for you to pick up. There is a significant change on PR#1030 that gets rid of a lot of tech debt that will go in immediately after the 4.2.0 release. > 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)