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)

Reply via email to