Peter Lee created TIKA-3197:
-------------------------------

             Summary: TikaInputStream may not be closed
                 Key: TIKA-3197
                 URL: https://issues.apache.org/jira/browse/TIKA-3197
             Project: Tika
          Issue Type: Bug
          Components: parser
            Reporter: Peter Lee


This is TikaInputStream's close method : 
{code:java}
public void close() throws IOException {
    path = null;
    mark = -1;
    tmp.addResource(in);
    tmp.close();
}
{code}
It will clean the TemporaryResources and close the InputStream which we orginal 
get in parameter.

 

This is TikaInputStream's get method : 
{code:java}
public static TikaInputStream get(InputStream stream, TemporaryResources tmp) {
    if (stream == null) {
        throw new NullPointerException("The Stream must not be null");
    }
    if (stream instanceof TikaInputStream) {
        return (TikaInputStream) stream;
    } else {
        // Make sure that the stream is buffered and that it
        // (properly) supports the mark feature
        if (!(stream.markSupported())) {
            stream = new BufferedInputStream(stream);
        }
        return new TikaInputStream(stream, tmp, -1);
    }
}{code}
If stream is not instance of TikaInputStream,  *it will create and return a new 
instance of TikaInputStream.* 

And as you can see , *we will not close this new instance in close method in 
this case*. We will only close the  InputStream which we orginal get in 
parameter.

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to