On Dec 23, 2013, at 12:50 PM, Konstantin Preißer <[email protected]> wrote:
> In that case, the stacktrace would show that the Exception is thrown in the
> webapp's code (and if the Exception is created using a cause, it would show a
> "Caused by: ..." stacktrace showing the original source).
>
> However, the stacktrace from Jesse shows that the EOFException is thrown by
> Tomcat's AjpNioProcessor class:
>
>> java.io.EOFException
>> at
>> org.apache.coyote.ajp.AjpNioProcessor.readSocket(AjpNioProcessor.java:358)
>> at
>> org.apache.coyote.ajp.AjpNioProcessor.read(AjpNioProcessor.java:314)
>> at
>> org.apache.coyote.ajp.AjpNioProcessor.readMessage(AjpNioProcessor.java:406)
>> at
>> org.apache.coyote.ajp.AjpNioProcessor.receive(AjpNioProcessor.java:375)
>> at
>> org.apache.coyote.ajp.AbstractAjpProcessor$SocketInputBuffer.doRead(AbstractAjpProcessor.java:1066)
>> at org.apache.coyote.Request.doRead(Request.java:422)
>> at
>> org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java:290)
>> at org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:431)
>> at
>> org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:315)
>> at
>> org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:167)
>> at com.prosc.io.IOUtils.writeInputToOutput(IOUtils.java:49)
>> at com.prosc.io.IOUtils.inputStreamAsBytes(IOUtils.java:116)
>> at com.prosc.io.IOUtils.inputStreamAsString(IOUtils.java:136)
>> at com.prosc.io.IOUtils.inputStreamAsString(IOUtils.java:127)
>> at com.prosc.licensecheck.LicenseCheck.doPost(LicenseCheck.java:164)
>> [...]
>
> Lines 351-361 of Tomcat 7.0.35's AjpNioProcessor#readSocket() are as follows:
>
> 351 if (nRead > 0) {
> 352 socket.getBufHandler().getReadBuffer().flip();
> 353 socket.getBufHandler().getReadBuffer().limit(nRead);
> 354 socket.getBufHandler().getReadBuffer().get(buf, pos, nRead);
> 355 return nRead;
> 356 } else if (nRead == -1) {
> 357 //return false;
> 358 throw new EOFException(sm.getString("iib.eof.error"));
> 359 } else {
> 360 return 0;
> 361 }
>
> Line 358 throws the EOFException because there was no more data to read on
> the AJP connection although (I think) the AJP connector expected the client
> to send further data (the request body).
>
>
> Regards,
> Konstantin Preißer
Thanks Konstantin - it doesn't sound like this is a problem that I can do
anything about, other than to catch the exception and ignore it.
--Jesse Barnum, President, 360Works
http://www.360works.com
Product updates and news on http://facebook.com/360Works
(770) 234-9293
== Don't lose your data! http://360works.com/safetynet/ for FileMaker Server ==