Hi,

Same here. I only got those when running Stanbol in Tomcat7 (together
with the LMF [1] in my case). Never had such exception when running
the standalone version that uses Jetty (even with the bugs mentioned
above). However I was never able to reproduce this with curl. But if
this is possible it would be great (for debugging). Maybe a Bug in
Jersey with very short  texts? I will need to try this myself.

best
Rupert

On Mon, Jan 21, 2013 at 12:48 PM, Andrea Di Menna <[email protected]> wrote:
> Hi Rupert,
>
> thank you very much for your response.
>
> The problem is I am also able to reproduce the error using curl.
> Usually some of those requests fail and then some succeed.
>
> Have you ever reproduced this with Jetty using curl, i.e. not using any
> intermediate client?
>
>> curl -X POST -H "Content-type: text/plain" --data "Paris "
> http://localhost:8080/stanbol/enhancer/chain/dbpedia-keyword
>
> <html><head><title>Apache Tomcat/7.0.21 - Error report</title><style><!--H1
> {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;}
> H2
> {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;}
> H3
> {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;}
> BODY
> {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B
> {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;}
> P
> {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A
> {color : black;}A.name {color : black;}HR {color : #525D76;}--></style>
> </head><body><h1>HTTP Status 500 - </h1><HR size="1"
> noshade="noshade"><p><b>type</b> Exception report</p><p><b>message</b>
> <u></u></p><p><b>description</b> <u>The server encountered an internal
> error () that prevented it from fulfilling this
> request.</u></p><p><b>exception</b> <pre>javax.servlet.ServletException:
> java.io.IOException: Stream closed
> com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:418)
> com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537)
> com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:708)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
> org.apache.felix.http.base.internal.handler.ServletHandler.doHandle(ServletHandler.java:96)
> org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:79)
> org.apache.felix.http.base.internal.dispatch.ServletPipeline.handle(ServletPipeline.java:42)
> org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:49)
> org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33)
> org.apache.stanbol.commons.security.auth.AuthenticatingFilter$1.run(AuthenticatingFilter.java:159)
> java.security.AccessController.doPrivileged(Native Method)
> javax.security.auth.Subject.doAsPrivileged(Subject.java:536)
> org.apache.stanbol.commons.security.auth.AuthenticatingFilter.doFilter(AuthenticatingFilter.java:155)
> org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:88)
> org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:76)
> org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:47)
> org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33)
> org.apache.stanbol.commons.httpqueryheaders.impl.QueryHeadersFilter.doFilter(QueryHeadersFilter.java:75)
> org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:88)
> org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:76)
> org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:47)
> org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33)
> org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:78)
> org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:47)
> org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33)
> org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:48)
> org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:39)
> org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:67)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
> org.apache.felix.http.proxy.ProxyServlet.service(ProxyServlet.java:60)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
> org.apache.sling.launchpad.base.webapp.SlingServletDelegate.service(SlingServletDelegate.java:278)
> org.apache.sling.launchpad.webapp.SlingServlet.service(SlingServlet.java:174)
> </pre></p><p><b>root cause</b> <pre>java.io.IOException: Stream closed
> org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:308)
> org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:169)
> org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1025)
> org.apache.commons.io.IOUtils.copy(IOUtils.java:999)
> org.apache.commons.io.IOUtils.toByteArray(IOUtils.java:218)
> org.apache.stanbol.enhancer.servicesapi.impl.StreamSource.getData(StreamSource.java:136)
> org.apache.stanbol.enhancer.contentitem.inmemory.InMemoryContentItemFactory.createBlob(InMemoryContentItemFactory.java:80)
> org.apache.stanbol.enhancer.servicesapi.impl.AbstractContentItemFactory.createContentItem(AbstractContentItemFactory.java:121)
> org.apache.stanbol.enhancer.servicesapi.impl.AbstractContentItemFactory.createContentItem(AbstractContentItemFactory.java:90)
> org.apache.stanbol.enhancer.jersey.reader.ContentItemReader.readFrom(ContentItemReader.java:261)
> org.apache.stanbol.enhancer.jersey.reader.ContentItemReader.readFrom(ContentItemReader.java:69)
> com.sun.jersey.spi.container.ContainerRequest.getEntity(ContainerRequest.java:474)
>
>
> 2013/1/21 Rupert Westenthaler <[email protected]>
>
>> Hi,
>>
>> I think the stacktrace originates from an Stanbol Enhancer request. I
>> know this trace very well, as I have seen it several times. However in
>> all those cases the exceptions where caused by problems with the
>> client side application. Once this was caused by bad Exception
>> Handling on the client side causing the Apache HttpClient to re-use
>> still referenced connections of the ConnectionPool. An other time it
>> was because of wrong "Content-Length" header information causing the
>> server to close the stream early (e.g. if the Bytes written by
>> Charset1 are not the one sent by the client because he uses Charset2).
>> In addition such exceptions might also happen if the client simple
>> cancels the request before all data where sent.
>>
>> This does not mean that there is no problem with Stanbol, but it is
>> very unlikely, as the only think that Stanbol does up to the point
>> where the Exception is thrown is to call 'IOUtils.toByteArray(in)' on
>> the InputStream prased by the JAX-RS MessageBodyReader#readFrom(..)
>> method.
>>
>> best
>> Rupert
>>
>>
>> On Mon, Jan 21, 2013 at 11:52 AM, Andrea Di Menna <[email protected]>
>> wrote:
>> > Hi all,
>> >
>> > I have an issue with the enhancer engine on Tomcat7.
>> > Trying to access a dbpedia entityhub I randomly get error 500 from a
>> > Stanbol instance.
>> >
>> > The tomcat7 error log reports:
>> >
>> > 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)
>> > at
>> >
>> com.sun.jersey.spi.container.ContainerRequest.getEntity(ContainerRequest.java:474)
>> >
>> > It looks like the InputStream gets closed when Stanbol is trying to
>> create
>> > the ContentItem from the request.
>> > The input text is a very short string.
>> >
>> > My feeling is that the request's InputStream is closed when the
>> > ContentItemFactory is reading it.
>> >
>> > Any suggestion?
>> >
>> > Regards
>> > Andrea
>>
>>
>>
>> --
>> | Rupert Westenthaler             [email protected]
>> | Bodenlehenstraße 11                             ++43-699-11108907
>> | A-5500 Bischofshofen
>>



-- 
| Rupert Westenthaler             [email protected]
| Bodenlehenstraße 11                             ++43-699-11108907
| A-5500 Bischofshofen

Reply via email to