Op woensdag, 17 augustus 2011 15:02 schreef Ronald Klop <ronald-mailinglist@base.nl>:
>
>
>
>
>
>
> Op woensdag, 17 augustus 2011 14:28 schreef Mark Thomas <markt@apache.org>:
> >
> >
> > On 17/08/2011 13:20, Ronald Klop wrote:
> > > Sometimes. Mostly I run ImageMagick in a separate process. But sometimes
> > > it does things with javax.imagio.
> > > I'm curious about the link between them. And what happened in 7.0.19
> > > that triggers something new.
> >
> > Details in the archives.
> >
> > If you have a simple test case that demonstrates the problem that
> > doesn't use imageio then I'd be interested.
> >
> > Mark
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> > For additional commands, e-mail: users-help@tomcat.apache.org
> >
> >
> >
> >
> >
>
>
> Ok. I read the FAQ mentioned by Konstantin and I understand it.
> My ImageIO always writes to a File and never directly to the ServletOutputStream..
> The communication between my servlet and the image resize module is a File. (Which
I cache on the Tomcat node, so I only have to resize ones.)
> And I read some more archives, but they are about problems after reloading a Context,
but I always restart my Tomcat nodes as I'm deploying new code and have only one Context.
> But I understand ImageIO can be troublesome.
>
> And I'm also interested in a simple test case. :-) I'm trying to figure out how to
reproduce this.
>
> Ronald.
>
>
>
>
>
Maybe this is of any interest from catalina.out on 7.0.19 with NIO.
Long before the first exception about a recylced response facade I get this:
Aug 15, 2011 10:55:07 AM org.apache.tomcat.util.net.NioEndpoint processSocket
SEVERE: Error allocating socket processor
java.lang.NullPointerException
at org.apache.tomcat.util.net.NioEndpoint.processSocket(NioEndpoint.java:710)
at org.apache.tomcat.util.net.NioEndpoint$Poller.processKey(NioEndpoint.java:1194)
at org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:1130)
at java.lang.Thread.run(Thread.java:662)
And some similar NPE's and a day later I get this:
Aug 16, 2011 9:00:29 AM org.apache.coyote.AbstractProtocol$AbstractConnectionHandler process
SEVERE: null
java.lang.NullPointerException
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.release(Http11NioProtocol.java:231)
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.release(Http11NioProtocol.java:150)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:531)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1544)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Aug 16, 2011 9:00:42 AM org.apache.catalina.connector.CoyoteAdapter service
SEVERE: An exception or error occurred in the container during the request processing
java.lang.NullPointerException
at org.apache.coyote.http11.InternalNioOutputBuffer.addToBB(InternalNioOutputBuffer.java:227)
at org.apache.coyote.http11.InternalNioOutputBuffer.commit(InternalNioOutputBuffer.java:218)
at org.apache.coyote.http11.AbstractHttp11Processor.action(AbstractHttp11Processor.java:698)
at org.apache.coyote.Response.action(Response.java:170)
at org.apache.coyote.Response.sendHeaders(Response.java:350)
at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:317)
at org.apache.catalina.connector.OutputBuffer.close(OutputBuffer.java:276)
at org.apache.catalina.connector.Response.finishResponse(Response.java:501)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:432)
at org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:313)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1544)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Aug 16, 2011 9:00:42 AM org.apache.coyote.http11.AbstractHttp11Processor endRequest
SEVERE: Error finishing response
java.lang.NullPointerException
at org.apache.coyote.http11.InternalNioOutputBuffer.flushBuffer(InternalNioOutputBuffer.java:252)
at org.apache.coyote.http11.InternalNioOutputBuffer.endRequest(InternalNioOutputBuffer.java:144)
at org.apache.coyote.http11.AbstractHttp11Processor.endRequest(AbstractHttp11Processor.java:1282)
at org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:356)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1544)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
2011-08-16 09:01:22,674 ERROR [Tue Aug 16 09:01:20 CEST 2011 /servlets/images/media.objectmedia/6705988
[request log id: 930312] ] MediaServlet: The response object has been recycled and is no longer
associated with this facade
java.lang.IllegalStateException: The response object has been recycled and is no longer associated
with this facade
at org.apache.catalina.connector.ResponseFacade.isCommitted(ResponseFacade.java:325)
~[catalina.jar:7.0.19]
at org.apache.catalina.connector.ResponseFacade.setContentType(ResponseFacade.java:237)
~[catalina.jar:7.0.19]
If I try the first failing request again. It doesn't fail. So it is not as easy as repeating
a request. I haven't checked if this request uses ImageIO yet.
Ronald.
|