[ 
https://issues.apache.org/jira/browse/STANBOL-898?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Rupert Westenthaler resolved STANBOL-898.
-----------------------------------------

    Resolution: Fixed

fixed with http://svn.apache.org/viewvc?rev=1436798&view=rev
                
> The Stanbol Enhancer StreamSource implementations MUST NOT close the parsed 
> InputStream
> ---------------------------------------------------------------------------------------
>
>                 Key: STANBOL-898
>                 URL: https://issues.apache.org/jira/browse/STANBOL-898
>             Project: Stanbol
>          Issue Type: Bug
>          Components: Enhancer
>            Reporter: Rupert Westenthaler
>            Assignee: Rupert Westenthaler
>            Priority: Critical
>
> As reported by Andrea Di Menna [1] the current StreamSource implementation my 
> cause 
> java.io.IOException: Stream closed
> at org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:308)
> at 
> org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:169)
> at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1025)
> at org.apache.commons.io.IOUtils.copy(IOUtils.java:999)
> at org.apache.commons.io.IOUtils.toByteArray(IOUtils.java:218)
> at 
> org.apache.stanbol.enhancer.servicesapi.impl.StreamSource.getData(StreamSource.java:136)
> at 
> org.apache.stanbol.enhancer.contentitem.inmemory.InMemoryContentItemFactory.createBlob(InMemoryContentItemFactory.java:80)
> at 
> org.apache.stanbol.enhancer.servicesapi.impl.AbstractContentItemFactory.createContentItem(AbstractContentItemFactory.java:121)
> at 
> org.apache.stanbol.enhancer.servicesapi.impl.AbstractContentItemFactory.createContentItem(AbstractContentItemFactory.java:90)
> at 
> org.apache.stanbol.enhancer.jersey.reader.ContentItemReader.readFrom(ContentItemReader.java:261)
> at 
> org.apache.stanbol.enhancer.jersey.reader.ContentItemReader.readFrom(ContentItemReader.java:69)
> in cases where the Servlet Container reuses parsed InputStreams - what seams 
> to be the case with Tomcat 7.
> The reason for that is that the finalize() method of the StreamSource does 
> call close() on the initially parsed InputStream. This might results in 
> Situations where close() is called on an InputStream that is currently used 
> by an other connection.
> To Solve this the following two adaptions are planed:
> 1. The StreamSource MUST NOT close parsed Streams.
> 2. Add the Requirement that the ContentItemFactory needs to consume all data 
> from parsed ContentSource implementation before returning from create** 
> methods.
> While (1) solves the reported issue and also allows for reusing streams by 
> the container (2) is required to allow users outside a container to know when 
> they can safely close streams.
> [2] http://markmail.org/message/k4vh7ekar56flhvd

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to