On Dec 23, 2013, at 12:50 PM, Konstantin Preißer <kpreis...@apache.org> 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 ==

Reply via email to