When I tried to write a response to the idle channel it writes the first time then the idletimer continues to run and it still detect that the channel is idle even though I wrote a response on it. What do I need to do for it to change its state, I think the error is in there that's why it is saying that I cannot send more response than the request<br>
<br><div class="gmail_quote">On Mon, May 30, 2011 at 9:50 PM, jsia24 <span dir="ltr"><<a href="mailto:jsia18@gmail.com">jsia18@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im">when I add e.getChannel().close()<br>
<br>
java.nio.channels.ClosedChannelException<br>
at<br>
sun.nio.ch.SocketChannelImpl.ensureWriteOpen(SocketChannelImpl.java:133)<br>
</div> at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:324)<br>
at<br>
<div class="im">org.jboss.netty.channel.socket.nio.SocketSendBufferPool$PooledSendBuffer.transferTo(SocketSendBufferPool.java:239)<br>
</div> at<br>
<div class="im">org.jboss.netty.channel.socket.nio.NioWorker.write0(NioWorker.java:469)<br>
</div> at<br>
<div class="im">org.jboss.netty.channel.socket.nio.NioWorker.writeFromTaskLoop(NioWorker.java:392)<br>
</div> at<br>
org.jboss.netty.channel.socket.nio.NioSocketChannel$WriteTask.run(NioSocketChannel.java:276)<br>
at<br>
<div class="im">org.jboss.netty.channel.socket.nio.NioWorker.processWriteTaskQueue(NioWorker.java:268)<br>
</div> at<br>
<div class="im">org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:199)<br>
at<br>
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)<br>
at<br>
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)<br>
</div><div class="im"> at java.lang.Thread.run(Thread.java:662)<br>
<br>
</div><div class="im">it complains that it is writing to an open socket do I need to kill the<br>
idletimer before closing the connection? if yes, how is it done? I wanted to<br>
use persistent connection, am I still doing it right if I close the<br>
</div>connection?<br>
<div class="im"><br>
On Mon, May 30, 2011 at 9:48 PM, Norman Maurer-2 [via Netty Forums and<br>
Mailing Lists] <<a href="mailto:ml-node%2B6419199-2003162173-301197@n2.nabble.com">ml-node+6419199-2003162173-301197@n2.nabble.com</a>> wrote:<br>
<br>
> Nope it will not close the connection. It will add a listener which<br>
> will get fired on a event. If you want to close a connection you<br>
> should use e.getChannel().close();<br>
><br>
> Bye,<br>
> Norman<br>
><br>
><br>
</div>> 2011/5/30 jsia24 <[hidden email]<<a href="http://user/SendEmail.jtp?type=node&node=6419199&i=0" target="_blank">http://user/SendEmail.jtp?type=node&node=6419199&i=0</a>>>:<br>
<div class="im">><br>
><br>
> > When I try to do this<br>
> ><br>
> > ChannelFuture future = e.getChannel().write(response);<br>
> > future.addListener(ChannelFutureListener.CLOSE);<br>
> ><br>
> > it closes the connection right? It's an IdleStateListener, when i gets<br>
> idle<br>
> > i write a response then will the code above close that connection?<br>
> ><br>
> ><br>
> > On Mon, May 30, 2011 at 9:37 PM, Trustin Lee [via Netty Forums and<br>
> Mailing<br>
</div>> > Lists] <[hidden email]<<a href="http://user/SendEmail.jtp?type=node&node=6419199&i=1" target="_blank">http://user/SendEmail.jtp?type=node&node=6419199&i=1</a>>><br>
<div><div></div><div class="h5">> wrote:<br>
> ><br>
> >> Are you sure that you are not writing more responses than the number of<br>
> >> received requests? For example, sending more than one response for a<br>
> >> single request is not right.<br>
> >><br>
> >> On 05/30/2011 10:31 PM, jsia24 wrote:<br>
> >><br>
> >> > I'm writing a comet server.<br>
> >> ><br>
> >> > On Mon, May 30, 2011 at 9:29 PM, Trustin Lee [via Netty Forums and<br>
> >> Mailing<br>
> >> > Lists]<[hidden email]<<br>
> <a href="http://user/SendEmail.jtp?type=node&node=6419159&i=0" target="_blank">http://user/SendEmail.jtp?type=node&node=6419159&i=0</a>>><br>
> >> wrote:<br>
> >> ><br>
> >> >> Are you writing a server, or a client?<br>
> >> >><br>
> >> >> On 05/30/2011 09:55 PM, jsia24 wrote:<br>
> >> >><br>
> >> >>> Here it is:<br>
> >> >>> I am actually saving the MessageEvents in a HashMap and reply<br>
> to<br>
> >> >> them<br>
> >> >>> when there is an event so what I did is to send a default message<br>
> when<br>
> >> it<br>
> >> >><br>
> >> >>> did not receive an event for a period of time, it does not produce<br>
> an<br>
> >> >> error<br>
> >> >>> if I do not write any response to the IdleStateEvent e ( if I just<br>
> do<br>
> >> >>> e.getChannel.close() )<br>
> >> >>><br>
> >> >>> java.lang.IllegalStateException: cannot send more responses than<br>
> >> requests<br>
> >> >><br>
> >> >>> at<br>
> >> >>><br>
> >> >><br>
> >><br>
> org.jboss.netty.handler.codec.http.HttpContentEncoder.writeRequested(HttpContentEncoder.java:102)<br>
><br>
> >><br>
> >> >><br>
> >> >>> at<br>
> org.jboss.netty.channel.Channels.write(Channels.java:611)<br>
> >> >>> at<br>
> org.jboss.netty.channel.Channels.write(Channels.java:578)<br>
> >> >>> at<br>
> >> >>><br>
> org.jboss.netty.channel.AbstractChannel.write(AbstractChannel.java:259)<br>
> >><br>
> >> >>> at<br>
> >> >> org.comet.classes.IdleHandler.channelIdle(IdleHandler.java:31)<br>
> >> >>> at<br>
> >> >>><br>
> >> >><br>
> >><br>
> org.jboss.netty.handler.timeout.IdleStateAwareChannelHandler.handleUpstream(IdleStateAwareChannelHandler.java:46)<br>
><br>
> >><br>
> >> >><br>
> >> >>> at<br>
> >> >>><br>
> >> >><br>
> >><br>
> org.jboss.netty.handler.timeout.IdleStateHandler.channelIdle(IdleStateHandler.java:324)<br>
><br>
> >><br>
> >> >><br>
> >> >>> at<br>
> >> >>><br>
> >> >><br>
> >><br>
> org.jboss.netty.handler.timeout.IdleStateHandler$WriterIdleTimeoutTask.run(IdleStateHandler.java:382)<br>
><br>
> >><br>
> >> >><br>
> >> >>> at<br>
> >> >>><br>
> >> >><br>
> >><br>
> org.jboss.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:519)<br>
><br>
> >><br>
> >> >><br>
> >> >>> at<br>
> >> >>><br>
> >> >><br>
> >><br>
> org.jboss.netty.util.HashedWheelTimer$Worker.notifyExpiredTimeouts(HashedWheelTimer.java:440)<br>
><br>
> >><br>
> >> >><br>
> >> >>> at<br>
> >> >>><br>
> >> >><br>
> >><br>
> org.jboss.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:379)<br>
> >> >>> at java.lang.Thread.run(Thread.java:662)<br>
> >> >>><br>
> >> >>> public class IdleHandler extends IdleStateAwareChannelHandler {<br>
> >> >>> public void channelIdle(ChannelHandlerContext ctx,<br>
> >> IdleStateEvent<br>
> >> >> e) {<br>
> >> >>> HttpResponse response = new DefaultHttpResponse(HTTP_1_1,<br>
><br>
> >> OK);<br>
> >> >>> response.setContent(ChannelBuffers.copiedBuffer("{}",<br>
> >> >>> CharsetUtil.UTF_8));<br>
> >> >>> response.setHeader(CONTENT_TYPE, "text/plain;<br>
> >> charset=UTF-8");<br>
> >> >>> response.setHeader(CONTENT_LENGTH,<br>
> >> >>> response.getContent().readableBytes());<br>
> >> >>> response.setHeader("Access-Control-Allow-Origin", "*");<br>
> >> >>> ChannelFuture future = e.getChannel().write(response);<br>
> >> >>> future.addListener(ChannelFutureListener.CLOSE);<br>
> >> >>> }<br>
> >> >>> }<br>
> >> >>><br>
> >> >>> On Mon, May 30, 2011 at 3:16 PM, Norman Maurer-2 [via Netty Forums<br>
> and<br>
> >> >>> Mailing Lists]<[hidden email]<<br>
> >> <a href="http://user/SendEmail.jtp?type=node&node=6419124&i=0" target="_blank">http://user/SendEmail.jtp?type=node&node=6419124&i=0</a>>><br>
> >> >> wrote:<br>
> >> >>><br>
> >> >>>> Can you post the stacktrace and your code?<br>
> >> >>>><br>
> >> >>>> Thanks<br>
> >> >>>> Norman<br>
> >> >>>><br>
> >> >>>> 2011/5/30, jsia24<[hidden email]<<br>
> >> >> <a href="http://user/SendEmail.jtp?type=node&node=6418081&i=0" target="_blank">http://user/SendEmail.jtp?type=node&node=6418081&i=0</a>>>:<br>
> >> >>>><br>
> >> >>>><br>
> >> >>>>> Hi ,<br>
> >> >>>>><br>
> >> >>>>> When I try to send a response on the IdleHandler, it is<br>
> >> producing<br>
> >> >> an<br>
> >> >>>>> error: cannot send more responses than requests. Could anyone<br>
> help<br>
> >> on<br>
> >> >>>> how<br>
> >> >>>>> to resolve this?<br>
> >> >>>>><br>
> >> >>>>> --<br>
> >> >>>>> View this message in context:<br>
> >> >>>>><br>
> >> >>>><br>
> >> >><br>
> >><br>
> <a href="http://netty-forums-and-mailing-lists.685743.n2.nabble.com/Error-on-writeRequested-tp6418009p6418009.html" target="_blank">http://netty-forums-and-mailing-lists.685743.n2.nabble.com/Error-on-writeRequested-tp6418009p6418009.html</a><br>
> >> >>>>> Sent from the Netty User Group mailing list archive at Nabble.com.<br>
><br>
> >> >>>>> _______________________________________________<br>
> >> >>>>> netty-users mailing list<br>
> >> >>>>> [hidden email]<<br>
> <a href="http://user/SendEmail.jtp?type=node&node=6418081&i=1" target="_blank">http://user/SendEmail.jtp?type=node&node=6418081&i=1</a>><br>
> >><br>
> >> >>>>> <a href="https://lists.jboss.org/mailman/listinfo/netty-users" target="_blank">https://lists.jboss.org/mailman/listinfo/netty-users</a><br>
> >> >>>>><br>
> >> >>>> _______________________________________________<br>
> >> >>>> netty-users mailing list<br>
> >> >>>> [hidden email]<<br>
> <a href="http://user/SendEmail.jtp?type=node&node=6418081&i=2" target="_blank">http://user/SendEmail.jtp?type=node&node=6418081&i=2</a>><br>
> >> >>>> <a href="https://lists.jboss.org/mailman/listinfo/netty-users" target="_blank">https://lists.jboss.org/mailman/listinfo/netty-users</a><br>
> >> >>>><br>
> >> >>>><br>
> >> >>>> ------------------------------<br>
> >> >>>> If you reply to this email, your message will be added to the<br>
> >> >> discussion<br>
> >> >>>> below:<br>
> >> >>>><br>
> >> >>>><br>
> >> >><br>
> >> >>>><br>
> >> >>>><br>
> >> >>><br>
> >> >>><br>
> >> >>> --<br>
> >> >>> View this message in context:<br>
> >> >><br>
> >><br>
> <a href="http://netty-forums-and-mailing-lists.685743.n2.nabble.com/Error-on-writeRequested-tp6418009p6418985.html" target="_blank">http://netty-forums-and-mailing-lists.685743.n2.nabble.com/Error-on-writeRequested-tp6418009p6418985.html</a><br>
> >> >><br>
> >> >>> Sent from the Netty User Group mailing list archive at Nabble.com.<br>
> >> >>> _______________________________________________<br>
> >> >>> netty-users mailing list<br>
> >> >>> [hidden email]<<a href="http://user/SendEmail.jtp?type=node&node=6419124&i=1" target="_blank">http://user/SendEmail.jtp?type=node&node=6419124&i=1</a>><br>
><br>
> >> >>> <a href="https://lists.jboss.org/mailman/listinfo/netty-users" target="_blank">https://lists.jboss.org/mailman/listinfo/netty-users</a><br>
> >> >><br>
> >> >><br>
> >> >> --<br>
> >> >> Trustin Lee, <a href="http://gleamynode.net/" target="_blank">http://gleamynode.net/</a><br>
> >> >> _______________________________________________<br>
> >> >> netty-users mailing list<br>
> >> >> [hidden email]<<a href="http://user/SendEmail.jtp?type=node&node=6419124&i=2" target="_blank">http://user/SendEmail.jtp?type=node&node=6419124&i=2</a>><br>
><br>
> >> >> <a href="https://lists.jboss.org/mailman/listinfo/netty-users" target="_blank">https://lists.jboss.org/mailman/listinfo/netty-users</a><br>
> >> >> what we call human nature in actuality is human habit<br>
> >> >> <a href="http://gleamynode.net/" target="_blank">http://gleamynode.net/</a><br>
> >> >><br>
> >> >><br>
> >> >> ------------------------------<br>
> >> >> If you reply to this email, your message will be added to the<br>
> >> discussion<br>
> >> >> below:<br>
> >> >><br>
> >> >><br>
> >><br>
> >> >><br>
> >> >><br>
> >> ><br>
> >> ><br>
> >> > --<br>
> >> > View this message in context:<br>
> >><br>
> <a href="http://netty-forums-and-mailing-lists.685743.n2.nabble.com/Error-on-writeRequested-tp6418009p6419138.html" target="_blank">http://netty-forums-and-mailing-lists.685743.n2.nabble.com/Error-on-writeRequested-tp6418009p6419138.html</a><br>
> >><br>
> >> > Sent from the Netty User Group mailing list archive at Nabble.com.<br>
> >> > _______________________________________________<br>
> >> > netty-users mailing list<br>
> >> > [hidden email] <<a href="http://user/SendEmail.jtp?type=node&node=6419159&i=1" target="_blank">http://user/SendEmail.jtp?type=node&node=6419159&i=1</a>><br>
><br>
> >> > <a href="https://lists.jboss.org/mailman/listinfo/netty-users" target="_blank">https://lists.jboss.org/mailman/listinfo/netty-users</a><br>
> >><br>
> >><br>
> >> --<br>
> >> Trustin Lee, <a href="http://gleamynode.net/" target="_blank">http://gleamynode.net/</a><br>
> >> _______________________________________________<br>
> >> netty-users mailing list<br>
> >> [hidden email] <<a href="http://user/SendEmail.jtp?type=node&node=6419159&i=2" target="_blank">http://user/SendEmail.jtp?type=node&node=6419159&i=2</a>><br>
> >> <a href="https://lists.jboss.org/mailman/listinfo/netty-users" target="_blank">https://lists.jboss.org/mailman/listinfo/netty-users</a><br>
> >> what we call human nature in actuality is human habit<br>
> >> <a href="http://gleamynode.net/" target="_blank">http://gleamynode.net/</a><br>
> >><br>
> >><br>
> >> ------------------------------<br>
> >> If you reply to this email, your message will be added to the<br>
> discussion<br>
> >> below:<br>
> >><br>
> >><br>
><br>
> >><br>
> >><br>
> ><br>
> ><br>
</div></div><div class="im">> > --<br>
> > View this message in context:<br>
> <a href="http://netty-forums-and-mailing-lists.685743.n2.nabble.com/Error-on-writeRequested-tp6418009p6419169.html" target="_blank">http://netty-forums-and-mailing-lists.685743.n2.nabble.com/Error-on-writeRequested-tp6418009p6419169.html</a><br>
><br>
> > Sent from the Netty User Group mailing list archive at Nabble.com.<br>
> > _______________________________________________<br>
> > netty-users mailing list<br>
</div>> > [hidden email] <<a href="http://user/SendEmail.jtp?type=node&node=6419199&i=2" target="_blank">http://user/SendEmail.jtp?type=node&node=6419199&i=2</a>><br>
<div class="im">> > <a href="https://lists.jboss.org/mailman/listinfo/netty-users" target="_blank">https://lists.jboss.org/mailman/listinfo/netty-users</a><br>
> ><br>
><br>
</div>> _______________________________________________<br>
> netty-users mailing list<br>
> [hidden email] <<a href="http://user/SendEmail.jtp?type=node&node=6419199&i=3" target="_blank">http://user/SendEmail.jtp?type=node&node=6419199&i=3</a>><br>
<div class="im">> <a href="https://lists.jboss.org/mailman/listinfo/netty-users" target="_blank">https://lists.jboss.org/mailman/listinfo/netty-users</a><br>
><br>
><br>
> ------------------------------<br>
> If you reply to this email, your message will be added to the discussion<br>
> below:<br>
><br>
</div>> <a href="http://netty-forums-and-mailing-lists.685743.n2.nabble.com/Error-on-writeRequested-tp6418009p6419199.html" target="_blank">http://netty-forums-and-mailing-lists.685743.n2.nabble.com/Error-on-writeRequested-tp6418009p6419199.html</a><br>
<div class="im">> To unsubscribe from Error on writeRequested, click here<<a href="http://netty-forums-and-mailing-lists.685743.n2.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=6418009&code=anNpYTE4QGdtYWlsLmNvbXw2NDE4MDA5fDE0MTk5NTMxMjM=" target="_blank">http://netty-forums-and-mailing-lists.685743.n2.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=6418009&code=anNpYTE4QGdtYWlsLmNvbXw2NDE4MDA5fDE0MTk5NTMxMjM=</a>>.<br>
><br>
><br>
<br>
<br>
--<br>
</div>View this message in context: <a href="http://netty-forums-and-mailing-lists.685743.n2.nabble.com/Error-on-writeRequested-tp6418009p6419211.html" target="_blank">http://netty-forums-and-mailing-lists.685743.n2.nabble.com/Error-on-writeRequested-tp6418009p6419211.html</a><br>
<div><div></div><div class="h5">Sent from the Netty User Group mailing list archive at Nabble.com.<br>
_______________________________________________<br>
netty-users mailing list<br>
<a href="mailto:netty-users@lists.jboss.org">netty-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/netty-users" target="_blank">https://lists.jboss.org/mailman/listinfo/netty-users</a><br>
</div></div></blockquote></div><br>