Holger Knublauch created JENA-2151: -------------------------------------- Summary: 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 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)