You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by 水野謙 <mi...@interfactory.co.jp> on 2017/02/16 03:10:57 UTC
ArrayIndexOutOfBoundsException in ServletInputStream.readLine
Dear Sirs,
I'm using Apache Tomcat/6.0.48 on Linux and I sometimes see the
following exception.
java.lang.ArrayIndexOutOfBoundsException: 8192
at org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:391)
at org.apache.catalina.connector.InputBuffer.readByte(InputBuffer.java:318)
at org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:105)
at javax.servlet.ServletInputStream.readLine(ServletInputStream.java:94)
at org.apache.catalina.connector.CoyoteInputStream.readLine(CoyoteInputStream.java:199)
at jp.co.interfactory.framework.MultiPartParser.retrieveParts(MultiPartParser.java:79)
"MultiPartParser.retrieveParts" is my application and calls readLine
method as follows:
(The actual program is more complicated and I extracted the code
related to the input stream)
byte[] buf = new byte[8 * 1024];
ServletInputStream istream = request.getInputStream();
while ((ret = istream.readLine(buf, 0, buf.length)) > -1) {
// ...
}
I cannot reproduce this exception but I observe it every couple of
months in our production servers.
I saw the similar exception when I used Apache Tomcat/6.0.44 and the
stacktrace was as follows:
java.lang.ArrayIndexOutOfBoundsException: 8192
at org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:391)
at org.apache.catalina.connector.InputBuffer.readByte(InputBuffer.java:317)
at org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:105)
at javax.servlet.ServletInputStream.readLine(ServletInputStream.java:94)
at org.apache.catalina.connector.CoyoteInputStream.readLine(CoyoteInputStream.java:199)
at jp.co.interfactory.framework.MultiPartParser.retrieveParts(MultiPartParser.java:79)
Best Regards
Ken Mizuno
mizuno.ken@interfactory.co.jp
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re: ArrayIndexOutOfBoundsException in ServletInputStream.readLine
Posted by 水野謙 <mi...@interfactory.co.jp>.
Hi Violeta,
Thank you for your reponse.
I found the following setting in my server.xml. Does this answer your question?
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"
maxThreads="700" packetSize="65536" useBodyEncodingForURI="true" />
2017-02-16 17:07 GMT+09:00 Violeta Georgieva <vi...@apache.org>:
> Hi,
>
> 2017-02-16 5:10 GMT+02:00 水野謙 <mi...@interfactory.co.jp>:
>>
>> Dear Sirs,
>>
>> I'm using Apache Tomcat/6.0.48 on Linux and I sometimes see the
>> following exception.
>>
>> java.lang.ArrayIndexOutOfBoundsException: 8192
>> at org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:391)
>> at
> org.apache.catalina.connector.InputBuffer.readByte(InputBuffer.java:318)
>> at
> org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:105)
>> at javax.servlet.ServletInputStream.readLine(ServletInputStream.java:94)
>> at
> org.apache.catalina.connector.CoyoteInputStream.readLine(CoyoteInputStream.java:199)
>> at
> jp.co.interfactory.framework.MultiPartParser.retrieveParts(MultiPartParser.java:79)
>
> Can you post here the Connectors configuration?
>
> Regards,
> Violeta
>
>>
>> "MultiPartParser.retrieveParts" is my application and calls readLine
>> method as follows:
>> (The actual program is more complicated and I extracted the code
>> related to the input stream)
>>
>> byte[] buf = new byte[8 * 1024];
>> ServletInputStream istream = request.getInputStream();
>> while ((ret = istream.readLine(buf, 0, buf.length)) > -1) {
>> // ...
>> }
>>
>> I cannot reproduce this exception but I observe it every couple of
>> months in our production servers.
>> I saw the similar exception when I used Apache Tomcat/6.0.44 and the
>> stacktrace was as follows:
>>
>> java.lang.ArrayIndexOutOfBoundsException: 8192
>> at org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:391)
>> at
> org.apache.catalina.connector.InputBuffer.readByte(InputBuffer.java:317)
>> at
> org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:105)
>> at javax.servlet.ServletInputStream.readLine(ServletInputStream.java:94)
>> at
> org.apache.catalina.connector.CoyoteInputStream.readLine(CoyoteInputStream.java:199)
>> at
> jp.co.interfactory.framework.MultiPartParser.retrieveParts(MultiPartParser.java:79)
>>
>>
>> Best Regards
>>
>> Ken Mizuno
>> mizuno.ken@interfactory.co.jp
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
--
株式会社インターファクトリー 水野 謙
mizuno.ken@interfactory.co.jp
〒102-0071
東京都千代田区富士見2-10-2 飯田橋グラン・ブルーム4階
TEL:03-5211-0056 / FAX:03-5211-0059
http://www.interfactory.co.jp
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re: ArrayIndexOutOfBoundsException in ServletInputStream.readLine
Posted by Violeta Georgieva <vi...@apache.org>.
Hi,
2017-02-16 5:10 GMT+02:00 水野謙 <mi...@interfactory.co.jp>:
>
> Dear Sirs,
>
> I'm using Apache Tomcat/6.0.48 on Linux and I sometimes see the
> following exception.
>
> java.lang.ArrayIndexOutOfBoundsException: 8192
> at org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:391)
> at
org.apache.catalina.connector.InputBuffer.readByte(InputBuffer.java:318)
> at
org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:105)
> at javax.servlet.ServletInputStream.readLine(ServletInputStream.java:94)
> at
org.apache.catalina.connector.CoyoteInputStream.readLine(CoyoteInputStream.java:199)
> at
jp.co.interfactory.framework.MultiPartParser.retrieveParts(MultiPartParser.java:79)
Can you post here the Connectors configuration?
Regards,
Violeta
>
> "MultiPartParser.retrieveParts" is my application and calls readLine
> method as follows:
> (The actual program is more complicated and I extracted the code
> related to the input stream)
>
> byte[] buf = new byte[8 * 1024];
> ServletInputStream istream = request.getInputStream();
> while ((ret = istream.readLine(buf, 0, buf.length)) > -1) {
> // ...
> }
>
> I cannot reproduce this exception but I observe it every couple of
> months in our production servers.
> I saw the similar exception when I used Apache Tomcat/6.0.44 and the
> stacktrace was as follows:
>
> java.lang.ArrayIndexOutOfBoundsException: 8192
> at org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:391)
> at
org.apache.catalina.connector.InputBuffer.readByte(InputBuffer.java:317)
> at
org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:105)
> at javax.servlet.ServletInputStream.readLine(ServletInputStream.java:94)
> at
org.apache.catalina.connector.CoyoteInputStream.readLine(CoyoteInputStream.java:199)
> at
jp.co.interfactory.framework.MultiPartParser.retrieveParts(MultiPartParser.java:79)
>
>
> Best Regards
>
> Ken Mizuno
> mizuno.ken@interfactory.co.jp
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>