Same problem. I'm getting lost.


Best Regards

Geoffrey

Phone Norway:  +47 45 86 53 83
Fileflow Technologies AS
Ole Deviks vei 35, 0668 Oslo, Norway

-------------------------------------



On 24 Nov 2009, at 18:38, g f wrote:

> Perhaps change your code from
> while((bytesRead = in.read(buf)) > 0) {
> 
> while((bytesRead = in.read(buf)) != -1) {
> 
> From api:
> Reads the next byte of data from the input stream. The value byte is
> returned as an int in the range 0 to 255. If no byte is available
> because the end of the stream has been reached, the value -1 is
> returned. This method blocks until input data is available, the end of
> the stream is detected, or an exception is thrown.
> 
> HTH.
> 
> On Tue, Nov 24, 2009 at 10:57 AM,  <geoff...@fileflow.com> wrote:
>> Hi everyone.
>> I'm stuck with a problem I don't understand. We have a tomcat server and
>> after redeploying our war file, we get this error:
>> java.lang.ArrayIndexOutOfBoundsException
>> at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:346)
>> at
>> org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:764)
>> at
>> org.apache.coyote.http11.filters.IdentityOutputFilter.doWrite(IdentityOutputFilter.java:118)
>> at
>> org.apache.coyote.http11.InternalOutputBuffer.doWrite(InternalOutputBuffer.java:573)
>> at org.apache.coyote.Response.doWrite(Response.java:560)
>> at
>> org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:353)
>> at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:325)
>> at
>> org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:381)
>> at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:370)
>> at
>> org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:89)
>> at com.fileflow.downloader.Downloader.doGet(Downloader.java:123)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>> at
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>> at
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>> at
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>> at
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>> at
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>> at
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
>> at
>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
>> at
>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>> at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
>> at java.lang.Thread.run(Thread.java:619)
>> Notice that there are no number on the first line and it is usually the
>> case.
>> The code that is "responsible is:
>> private ServletOutputStream out;
>> private InputStream in;
>> ...
>> in = new FileInputStream(tmp);
>> ...
>> out = response.getOutputStream();
>> byte[] buf = new byte[8 * 1024]; // 8K buffer
>> int bytesRead;
>> while((bytesRead = in.read(buf)) > 0) {
>> out.write(buf, 0, bytesRead);
>> }
>> The updated code didn't change anything in that Servlet so I really have no
>> clue what happened. It happens on tomcat 6.0.18 and 6.0.20. Java is
>> 1.6.0_11.
>> Thanks for any help.
>> 
>> Best Regards
>> Geoffrey
>> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
> 
> 

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to