title: Exception java.nio.channels.ClosedChannelException when write to client channel
body: <p>I have created a game server using netty 3.5.8.
  At first, there is not any problem with sending data from server to client.
  But when server operates for a while, there are many exceptions [<code>java.nio.channels.ClosedChannelException</code>] when I write data to the client channel.</p>
  
  <p>Anyone has gotten this exception before. Is there any tip to fix this?
  I think about cache buffer cause this.</p>
  
  <p>My code sample like this:</p>
  
  <pre><code>ChannelBuffer bff = ChannelBuffers.buffer(18);
  bff.writeByte(Events.S_SERVER_PUSH);  
  bff.writeByte((byte)0);
  bff.writeInt(idRoom);            
  bff.writeInt(playerCnt);
  bff.writeInt(gameCnt);
  bff.writeInt(freePlayer);
  channel.write(bff);
  </code></pre>
  
  <p>Exception: java.nio.channels.ClosedChannelException</p>
  
  <pre><code>java.nio.channels.ClosedChannelException
          at org.jboss.netty.channel.socket.nio.AbstractNioWorker.cleanUpWriteBuffer(AbstractNioWorker.java:784)
          at org.jboss.netty.channel.socket.nio.AbstractNioWorker.writeFromUserCode(AbstractNioWorker.java:507)
          at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.handleAcceptedSocket(NioServerSocketPipelineSink.java:129)
          at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.eventSunk(NioServerSocketPipelineSink.java:66)
          at org.jboss.netty.channel.Channels.write(Channels.java:733)
          at org.jboss.netty.handler.codec.oneone.OneToOneEncoder.doEncode(OneToOneEncoder.java:71)
          at org.jboss.netty.handler.codec.oneone.OneToOneEncoder.handleDownstream(OneToOneEncoder.java:60)
          at org.jboss.netty.channel.Channels.write(Channels.java:712)
          at org.jboss.netty.channel.Channels.write(Channels.java:679)
          at org.jboss.netty.channel.AbstractChannel.write(AbstractChannel.java:248)
         at myclass.SendPushData(GameRoom.java:231)
          at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
          at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:458)
          at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:439)
          at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303)
          at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
          at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
          at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:84)
          at org.jboss.netty.channel.socket.nio.AbstractNioWorker.processSelectedKeys(AbstractNioWorker.java:471)
          at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:332)
          at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35)
          at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
          at java.lang.Thread.run(Unknown Source)
  </code></pre>