Broken Pipe ao gravar bytes no ServletOutputStream

Ao executar este código,

ServletOutputStream out = response.getOutputStream();
out.write(bytes, 0, bytes.length);
out.flush();  
out.close();  

Estou recebendo essa exceção com frequência e não consigo entender por que isso está acontecendo.

Caused by: ClientAbortException:  java.net.SocketException: Broken pipe
    at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:358)
    at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:354)
    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)

Eu tenho um aplicativo da web em execução em um servidor linux, no JBoss 4.2.3 e no MySQL.

Como isso é causado e como posso resolvê-lo?

questionAnswers(2)

yourAnswerToTheQuestion