greetings all,
since commencing with version 8 (embedded) I have encountered no problems
except when the HttpServletRequest object receives a message bigger than
16384 k. In that circumstance a warning(below) is repeated X times for
messages bigger than 8192+(X*8192).
I notice in the InternalNioInputBuffer.expand method, the comment "//should
not happen" precedes the logging of the warning message.
I am using a modified BufferedReader class with a buffer size of 8192 and
the warning seems to coincide with each read. This same class has operated
without a problem for years but I am sure my reader is causing this new
problem.

So the question is "how best to read a large message from the
ServletInputStream in tomcat-8"
=============================
Aug 26, 2013 10:59:33 AM org.apache.coyote.http11.InternalNioInputBuffer
expand
WARNING: Expanding buffer size. Old size: 16384, new size: 24576
java.lang.Exception
    at
org.apache.coyote.http11.InternalNioInputBuffer.expand(InternalNioInputBuffer.java:420)
    at
org.apache.coyote.http11.InternalNioInputBuffer.readSocket(InternalNioInputBuffer.java:467)
    at
org.apache.coyote.http11.InternalNioInputBuffer.nbRead(InternalNioInputBuffer.java:187)
    at
org.apache.coyote.http11.InternalNioInputBuffer.available(InternalNioInputBuffer.java:171)
    at
org.apache.coyote.http11.AbstractHttp11Processor.action(AbstractHttp11Processor.java:818)
    at org.apache.coyote.Request.action(Request.java:373)
    at
org.apache.catalina.connector.InputBuffer.available(InputBuffer.java:243)
    at
org.apache.catalina.connector.CoyoteInputStream.available(CoyoteInputStream.java:137)
    at sun.nio.cs.StreamDecoder.inReady(StreamDecoder.java:362)
    at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:323)
    at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
    at java.io.InputStreamReader.read(InputStreamReader.java:184)
    at oodbpds.BigBufferedReader.read1(BigBufferedReader.java:136)
    at oodbpds.BigBufferedReader.read(BigBufferedReader.java:156)
    at oodbpds.ASIFTI.doPost(ASIFTI.java:90)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:223)
    at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:107)
    at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
    at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
    at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:75)
    at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:90)
    at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:494)
    at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009)
    at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:632)
    at
org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223)
    at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1592)
    at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1550)
    at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)
-- 
Vince Stewart

Reply via email to