Which line of code is on 71?

helloworldservlet.ServletVideo.streamBinaryData(ServletVideo.java:71)

In your finally block, you are closing the servlet output stream, I wonder if 
that's causing tomcat a problem since it usually closes the servlet output 
stream itself? 

Humour me and change

if( outstr != null ) {
    outstr.flush();
    outstr.close();
}

to 

if( outstr != null ) {
    outstr.flush();
}


> -----Original Message-----
> From: Adriana Suarez [mailto:[EMAIL PROTECTED]
> Sent: 28 June 2005 04:33
> To: tomcat-user@jakarta.apache.org
> Subject: ClientAbortException: java.net.SocketException: Connection
> reset by peer: socket write error
> 
> 
> Hello,
> 
> I got this exception and I don't know how to solve it, I have a web
> application with a servlet which sends video with formats avi, mpeg,
> and mov, it shows the video but the tomcat throws this exception:
> 
> ClientAbortException:  java.net.SocketException: Connection reset by
> peer: socket write error
>       at 
> org.apache.coyote.tomcat5.OutputBuffer.realWriteBytes(OutputBu
> ffer.java:373)
>       at 
> org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:323)
>       at 
> org.apache.coyote.tomcat5.OutputBuffer.writeBytes(OutputBuffer
> .java:401)
>       at 
> org.apache.coyote.tomcat5.OutputBuffer.write(OutputBuffer.java:388)
>       at 
> org.apache.coyote.tomcat5.CoyoteOutputStream.write(CoyoteOutpu
> tStream.java:76)
>       at 
> java.io.BufferedOutputStream.write(BufferedOutputStream.java:106)
>       at 
> helloworldservlet.ServletVideo.streamBinaryData(ServletVideo.java:71)
>       at helloworldservlet.ServletVideo.doGet(ServletVideo.java:37)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilt
> er(ApplicationFilterChain.java:237)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli
> cationFilterChain.java:157)
>       at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardW
> rapperValve.java:214)
>       at 
> org.apache.catalina.core.StandardValveContext.invokeNext(Stand
> ardValveContext.java:104)
>       at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> ine.java:520)
>       at 
> org.apache.catalina.core.StandardContextValve.invokeInternal(S
> tandardContextValve.java:198)
>       at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardC
> ontextValve.java:152)
>       at 
> org.apache.catalina.core.StandardValveContext.invokeNext(Stand
> ardValveContext.java:104)
>       at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> ine.java:520)
>       at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHost
> Valve.java:137)
>       at 
> org.apache.catalina.core.StandardValveContext.invokeNext(Stand
> ardValveContext.java:104)
>       at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReport
> Valve.java:117)
>       at 
> org.apache.catalina.core.StandardValveContext.invokeNext(Stand
> ardValveContext.java:102)
>       at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> ine.java:520)
>       at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEn
> gineValve.java:109)
>       at 
> org.apache.catalina.core.StandardValveContext.invokeNext(Stand
> ardValveContext.java:104)
>       at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> ine.java:520)
>       at 
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
>       at 
> org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.
> java:160)
>       at 
> org.apache.coyote.http11.Http11Processor.process(Http11Process
> or.java:799)
>       at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandle
> r.processConnection(Http11Protocol.java:705)
>       at 
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoi
> nt.java:577)
>       at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
> ThreadPool.java:683)
>       at java.lang.Thread.run(Thread.java:534)
> 
> and this is where the code fails:
> 
>  private void streamBinaryData(String urlstr,String
> format,ServletOutputStream outstr, HttpServletResponse resp)
>   {
>         String ErrorStr = null;
>         try{
>           //find the right mime type and set it as contenttype
>           resp.setContentType(getMimeType(format));
>           BufferedInputStream bis = null;
>           BufferedOutputStream bos = null;
>           try{
>               URL url = new URL(urlstr);
>               URLConnection urlc= url.openConnection();
>               int length =urlc.getContentLength();
>               resp.setContentLength(length);
>               // Use Buffered Stream for reading/writing.
>               InputStream in = urlc.getInputStream();
>               bis = new BufferedInputStream(in);
>               bos = new BufferedOutputStream(outstr);
>               byte[] buff = new byte[length];
>               int bytesRead;
>               // Simple read/write loop.
>               while(-1 != (bytesRead = bis.read(buff, 0, 
> buff.length))) {
>                 bos.write(buff, 0, bytesRead);
>               }
>           } catch (Exception e) {
>                 e.printStackTrace();
>                 ErrorStr = "Error Streaming the Data";
>                 outstr.print(ErrorStr);
>           } finally {
>                 if( bis != null ) {
>                   bis.close();
>                 }
>                 if( bos != null ) {
>                   bos.close();
>                 }
>                 if( outstr != null ) {
>                   outstr.flush();
>                   outstr.close();
>                 }
>           }
>         }
>         catch(Exception e){
>                 e.printStackTrace();
>         }
>   }
> 
> I have read many forums but they do not explain in detail what the
> problem is, some they say is a tomcat bug. Can anyone help me to
> figure it out?
> 
> Thanks
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 


<FONT SIZE=1 FACE="VERDANA,ARIAL" COLOR=BLUE> 
-------------------------------------------------------
QAS Ltd.
Registered in England: No 2582055
Registered in Australia: No 082 851 474
-------------------------------------------------------
</FONT>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to