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 ==