<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:n2.nabble.com,2006:forum-685700</id>
	<title>Nabble - Netty User Group</title>
	<updated>2009-07-02T13:20:41Z</updated>
	<link rel="self" type="application/atom+xml" href="http://n2.nabble.com/Netty-User-Group-f685700.xml" />
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/Netty-User-Group-f685700.html" />
	<subtitle type="html">End user questions and answers are posted here.</subtitle>
	
<entry>
	<id>tag:n2.nabble.com,2006:post-3197594</id>
	<title>Overlaping messages</title>
	<published>2009-07-02T13:20:41Z</published>
	<updated>2009-07-02T13:20:41Z</updated>
	<author>
		<name>Ernesto A.</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;I'm playing around with netty to see if we can use it to replace our
&lt;br&gt;old network framework, based on its flexibility and the promise of
&lt;br&gt;switching to nio with minimal effort should we need it. So far I have
&lt;br&gt;encountered only one problem: we use a simple text protocol to
&lt;br&gt;communicate between client and server, it consists of text fields
&lt;br&gt;separated by a separator, we have the following setup for the channel
&lt;br&gt;factory
&lt;br&gt;&lt;br&gt;...ChannelFactory:
&lt;br&gt;pipeline.addLast(&amp;quot;string_decoder&amp;quot;, new StringDecoder());
&lt;br&gt;pipeline.addLast(&amp;quot;object_decoder&amp;quot;, new OurObjectDecoder());
&lt;br&gt;&lt;br&gt;OurObjectDecoder class extends OneToOneDecoder, takes a string message
&lt;br&gt;and parses it to produce a POJO. So far so good, but sometimes, not
&lt;br&gt;always, a message would overlap over a previous message at the same
&lt;br&gt;position always, and we end up receiving two messages in one, and
&lt;br&gt;consequently failing to register and losing the second message.
&lt;br&gt;However when I take my object decoder out of the pipeline chain and
&lt;br&gt;handle the message directly on my business logic then I get the
&lt;br&gt;messages one after the other without overlaping. Could it be two
&lt;br&gt;internal netty threads modifying the ChannelBuffer concurrently? I'm
&lt;br&gt;using netty 3.1.0.cr1, any feedback would be appreciated, thanks in
&lt;br&gt;advance, Ernest.
&lt;br&gt;_______________________________________________
&lt;br&gt;netty-users mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3197594&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/Overlaping-messages-tp3197594p3197594.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3182794</id>
	<title>Optimizing Netty for fast socket accept/creation</title>
	<published>2009-06-30T07:05:11Z</published>
	<updated>2009-06-30T07:05:11Z</updated>
	<author>
		<name>Carl Byström</name>
	</author>
	<content type="html">Been experimenting some with Netty the last couple of days. As an avid MINA fan, Netty looks great!&lt;br&gt;What&amp;#39;s been bothering is the &amp;quot;slow&amp;quot; socket accept, which limits the throughput of my application. (Request/response based ála HTTP 1.0, so no keep-alive).&lt;br&gt;
(The socket accept operation isn&amp;#39;t &amp;quot;slow&amp;quot;, I just feel that it could be improved thus increasing my throughput)&lt;br&gt;&lt;br&gt;After profiling my application I found that accept is taking up most of the time. While this probably is as expected, I can&amp;#39;t help feeling limited by that fact.&lt;br&gt;
I&amp;#39;ve tried having the same server listening on multiple ports thus getting a separate boss thread doing the accept. This actually doubles the number of req/s while retaining the same response time. I realize this isn&amp;#39;t anything peculiar (multi-core machine with another accept thread for it to chew on). But it gets me thinking if there&amp;#39;s more one can do to optimize this.&lt;br&gt;
&lt;br&gt;Is it possible to speed up the socket accept operation&lt;br&gt;a) by tuning Netty?&lt;br&gt;b) by tuning the JVM?&lt;br&gt;c) by tuning the OS/kernel?&lt;br&gt;&lt;br&gt;While I fear things like this might be very sensitive to how the OS implements the TCP stack, I hope at least there are some general advice or places to start looking.&lt;br&gt;
Appreciate any hints or tips regarding this. (Running on RHEL5 64-bit, Java 1.6.0_10-b33, Intel Quad-Core Q6600)&lt;br&gt;&lt;br&gt;- Carl&lt;br&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;netty-users mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3182794&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/Optimizing-Netty-for-fast-socket-accept-creation-tp3182794p3182794.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3190071</id>
	<title>Re: HttpTunnelingClientExample</title>
	<published>2009-07-01T09:20:52Z</published>
	<updated>2009-07-01T09:20:52Z</updated>
	<author>
		<name>Trustin Lee</name>
	</author>
	<content type="html">Hi Mike,
&lt;br&gt;&lt;br&gt;The example should not break even if the written line is empty. &amp;nbsp;It's
&lt;br&gt;perhaps a bug. &amp;nbsp;I will revisit once HTTP tunneling transport is
&lt;br&gt;revamped. &amp;nbsp;It has a couple known issues and needs major overhaul.
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;Trustin
&lt;br&gt;&lt;br&gt;On 06/30/2009 08:41 AM, Michael McGrady wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; The noted example client
&lt;br&gt;&amp;gt; breaks if there is a String with 0 length returned from the command
&lt;br&gt;&amp;gt; line. &amp;nbsp;This is probably obvious to everyone. &amp;nbsp;An equally obvious fix is
&lt;br&gt;&amp;gt; to put in a pass through user instruction like:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (line.length() != 0) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Sends the received line to the server.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; lastWriteFuture = channelFuture.getChannel().write(line);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println(&amp;quot;Enter \&amp;quot;quit\&amp;quot; &amp;quot;) ;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; in the main method.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Mike
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Mike McGrady
&lt;br&gt;&amp;gt; Principal Investigator AF081-028 AFRL SBIR
&lt;br&gt;&amp;gt; Senior Engineer
&lt;br&gt;&amp;gt; Topia Technology, Inc
&lt;br&gt;&amp;gt; 1.253.720.3365
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3190071&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;mmcgrady@...&lt;/a&gt; &amp;lt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3190071&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;mmcgrady@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; ------------------------------------------------------------------------
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; netty-users mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3190071&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;/div&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;netty-users mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3190071&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;&lt;div class=&quot;signature&quot;&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/HttpTunnelingClientExample-tp3178103p3190071.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3178103</id>
	<title>HttpTunnelingClientExample</title>
	<published>2009-06-29T16:41:56Z</published>
	<updated>2009-06-29T16:41:56Z</updated>
	<author>
		<name>Michael McGrady</name>
	</author>
	<content type="html">&lt;div&gt;The noted example client breaks&amp;nbsp;if&amp;nbsp;there&amp;nbsp;is&amp;nbsp;a&amp;nbsp;String&amp;nbsp;with&amp;nbsp;0&amp;nbsp;length&amp;nbsp;returned from the command line.&amp;nbsp;&amp;nbsp;This&amp;nbsp;is&amp;nbsp;probably&amp;nbsp;obvious&amp;nbsp;to&amp;nbsp;everyone. &amp;nbsp;An equally obvious fix is to put in a pass through user instruction like:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; min-height: 15px; &quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;p style=&quot;margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br class=&quot;webkit-block-placeholder&quot;&gt;&lt;/p&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; &quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #7f0055&quot;&gt;if&lt;/span&gt; (line.length() != 0) {&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(63, 127, 95); &quot;&gt;&lt;span style=&quot;color: #000000&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;// Sends the received line to the server.&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; &quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; lastWriteFuture = channelFuture.getChannel().write(line);&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; &quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;span style=&quot;color: #7f0055&quot;&gt;else&lt;/span&gt; {&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; &quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;System.&lt;span style=&quot;color: #0000c0&quot;&gt;out&lt;/span&gt;.println(&lt;span style=&quot;color: #2a00ff&quot;&gt;&quot;Enter \&quot;quit\&quot; &quot;&lt;/span&gt;) ;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; &quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; &quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; face=&quot;Helvetica&quot; size=&quot;3&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 12px;&quot;&gt;in the main method.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; face=&quot;Helvetica&quot; size=&quot;3&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 12px;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; face=&quot;Helvetica&quot; size=&quot;3&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 12px;&quot;&gt;Mike&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;br&gt;&lt;div apple-content-edited=&quot;true&quot;&gt; &lt;div style=&quot;word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; &quot;&gt;&lt;div style=&quot;word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; &quot;&gt;&lt;div style=&quot;word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; &quot;&gt;&lt;div style=&quot;word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; &quot;&gt;&lt;div style=&quot;word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; &quot;&gt;&lt;div&gt;&lt;div&gt;Mike McGrady&lt;/div&gt;&lt;div&gt;Principal Investigator AF081-028 AFRL SBIR&lt;/div&gt;&lt;div&gt;Senior Engineer&lt;/div&gt;&lt;div&gt;Topia Technology, Inc&lt;/div&gt;&lt;div&gt;1.253.720.3365&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3178103&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;mmcgrady@...&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;br class=&quot;Apple-interchange-newline&quot;&gt;&lt;/div&gt;&lt;/span&gt;&lt;br class=&quot;Apple-interchange-newline&quot;&gt;&lt;/div&gt;&lt;/span&gt;&lt;br class=&quot;Apple-interchange-newline&quot;&gt;&lt;/div&gt;&lt;br class=&quot;Apple-interchange-newline&quot;&gt;&lt;/div&gt;&lt;br class=&quot;Apple-interchange-newline&quot;&gt; &lt;/div&gt;&lt;br&gt;&lt;br /&gt;_______________________________________________
&lt;br&gt;netty-users mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3178103&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/HttpTunnelingClientExample-tp3178103p3178103.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3179607</id>
	<title>Re: UDP state</title>
	<published>2009-06-29T23:15:36Z</published>
	<updated>2009-06-29T23:15:36Z</updated>
	<author>
		<name>neilson9</name>
	</author>
	<content type="html">Im pretty sure you can only attach state using TCP,  UDP is connectionless so &lt;div&gt;there is no way of determining a client socket session (cause there isnt one) - however it would be possible to &lt;/div&gt;&lt;div&gt;pass through a client UUID as part of each message header and use it to associate state - just a thought &lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;2009/6/29 pkwarren &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3179607&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pkwarren@...&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;&quot;&gt;
&lt;br&gt;
I have tried to create a UDP protocol handler in Netty using the OIO UDP&lt;br&gt;
handler, however I can&amp;#39;t figure out how to store state in my handler. I have&lt;br&gt;
tried using a custom ChannelPipelineFactory which returns a new instance of&lt;br&gt;
my handler with each call to getPipeline(), but I&amp;#39;m finding that every&lt;br&gt;
message which comes in occurs on the same instance of the handler. Since the&lt;br&gt;
same handler is used for each message, I also don&amp;#39;t think I can use&lt;br&gt;
ChannelHandlerContext.setAttachment() or ChannelLocal() to store state.&lt;br&gt;
&lt;br&gt;
Does anyone know how to enable saving some state as part of a UDP pipeline?&lt;br&gt;
In particular, I&amp;#39;m looking to save off some information in the&lt;br&gt;
messageReceived() method that could be used in the exceptionCaught() method&lt;br&gt;
to simplify error handling.&lt;br&gt;
&lt;font color=&quot;#888888&quot;&gt;--&lt;br&gt;
View this message in context: &lt;a href=&quot;http://n2.nabble.com/UDP-state-tp3177229p3177229.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://n2.nabble.com/UDP-state-tp3177229p3177229.html&lt;/a&gt;&lt;br&gt;
Sent from the Netty User Group mailing list archive at Nabble.com.&lt;br&gt;
&lt;br&gt;
_______________________________________________&lt;br&gt;
netty-users mailing list&lt;br&gt;
&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3179607&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;
&lt;/font&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;&lt;/div&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;netty-users mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3179607&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/UDP-state-tp3177229p3179607.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3177229</id>
	<title>UDP state</title>
	<published>2009-06-29T14:17:38Z</published>
	<updated>2009-06-29T14:17:38Z</updated>
	<author>
		<name>pkwarren</name>
	</author>
	<content type="html">I have tried to create a UDP protocol handler in Netty using the OIO UDP handler, however I can't figure out how to store state in my handler. I have tried using a custom ChannelPipelineFactory which returns a new instance of my handler with each call to getPipeline(), but I'm finding that every message which comes in occurs on the same instance of the handler. Since the same handler is used for each message, I also don't think I can use ChannelHandlerContext.setAttachment() or ChannelLocal() to store state.
&lt;br&gt;&lt;br&gt;Does anyone know how to enable saving some state as part of a UDP pipeline? In particular, I'm looking to save off some information in the messageReceived() method that could be used in the exceptionCaught() method to simplify error handling.</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/UDP-state-tp3177229p3177229.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3180793</id>
	<title>Chunking Data</title>
	<published>2009-06-29T12:52:56Z</published>
	<updated>2009-06-29T12:52:56Z</updated>
	<author>
		<name>Michael McGrady</name>
	</author>
	<content type="html">I want to build an application to move mobile objects and resources &amp;nbsp;
&lt;br&gt;where the mobile object code uses OSGi to update a network node, &amp;nbsp;
&lt;br&gt;rather than using the usual JMX solution with HTTP. &amp;nbsp;Thus, I need &amp;nbsp;
&lt;br&gt;among other things to send (PUSH) a stream or chunked data to a target &amp;nbsp;
&lt;br&gt;location. &amp;nbsp;HTTP in Netty is not the implementation I need. &amp;nbsp;Anything &amp;nbsp;
&lt;br&gt;else out there? &amp;nbsp;Thanks.
&lt;br&gt;&lt;br&gt;Mike
&lt;br&gt;&lt;br&gt;&lt;br&gt;Mike McGrady
&lt;br&gt;Principal Investigator AF081-028 AFRL SBIR
&lt;br&gt;Senior Engineer
&lt;br&gt;Topia Technology, Inc
&lt;br&gt;1.253.720.3365
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3180793&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;mmcgrady@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;netty-users mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3180793&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/Chunking-Data-tp3180793p3180793.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3164913</id>
	<title>Re: HttpServer example blocking after 16384 requests</title>
	<published>2009-06-26T18:42:13Z</published>
	<updated>2009-06-26T18:42:13Z</updated>
	<author>
		<name>Trustin Lee</name>
	</author>
	<content type="html">Hi Sebastian,
&lt;br&gt;&lt;br&gt;I guess the client ran out of ports due to TIME_WAIT state. &amp;nbsp;Try to see 
&lt;br&gt;how many ports are taken by TIME_WAIT state - 'netstat -nat' in Linux. 
&lt;br&gt;The client will continue its work when TIME_WAIT state goes away. &amp;nbsp;To 
&lt;br&gt;avoid this problem, you could
&lt;br&gt;&lt;br&gt;1) increase the ephemeral port range
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://en.wikipedia.org/wiki/Ephemeral_port&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Ephemeral_port&lt;/a&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://www.ncftp.com/ncftpd/doc/misc/ephemeral_ports.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.ncftp.com/ncftpd/doc/misc/ephemeral_ports.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;2) turn on 'tcp_tw_recycle' in Linux
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://ipsysctl-tutorial.frozentux.net/ipsysctl-tutorial.html#AEN499&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://ipsysctl-tutorial.frozentux.net/ipsysctl-tutorial.html#AEN499&lt;/a&gt;&lt;br&gt;&lt;br&gt;3) Use Keep-Alive
&lt;br&gt;&lt;br&gt;HTH,
&lt;br&gt;Trustin
&lt;br&gt;&lt;br&gt;Sebastian Latza wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi everybody,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I am toying around with the netty examples and ran into an issue with
&lt;br&gt;&amp;gt; the HttpServer. After 16384 requests (16 KB) from Apache Bench my server
&lt;br&gt;&amp;gt; stops accepting new requests for a while. After 30 sec. or so it
&lt;br&gt;&amp;gt; &amp;quot;recovers&amp;quot;, taking another 16384. I'm guessing that the threads are not
&lt;br&gt;&amp;gt; releasing the sockets properly for some reason, but I'm not sure how to
&lt;br&gt;&amp;gt; enforce this. Another reason could be os-related, but again I am not
&lt;br&gt;&amp;gt; sure which parameter to tune (max . files are 256) I'm running Mac OS,
&lt;br&gt;&amp;gt; 2GB Ram, Java 1.5.0_19, Netty 3.10.CR1
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Any hints/pointers?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Regards
&lt;br&gt;&amp;gt; Sebastian
&lt;/div&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Trustin Lee, &lt;a href=&quot;http://gleamynode.net&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net&lt;/a&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;netty-users mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3164913&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;&lt;div class=&quot;signature&quot;&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/HttpServer-example-blocking-after-16384-requests-tp3164479p3164913.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3164479</id>
	<title>HttpServer example blocking after 16384 requests</title>
	<published>2009-06-26T16:26:20Z</published>
	<updated>2009-06-26T16:26:20Z</updated>
	<author>
		<name>Sebastian Latza</name>
	</author>
	<content type="html">Hi everybody,
&lt;br&gt;&lt;br&gt;I am toying around with the netty examples and ran into an issue with &amp;nbsp;
&lt;br&gt;the HttpServer. After 16384 requests (16 KB) from Apache Bench my &amp;nbsp;
&lt;br&gt;server stops accepting new requests for a while. After 30 sec. or so &amp;nbsp;
&lt;br&gt;it &amp;quot;recovers&amp;quot;, taking another 16384. I'm guessing &amp;nbsp;that the threads &amp;nbsp;
&lt;br&gt;are not releasing the sockets properly for some reason, but I'm not &amp;nbsp;
&lt;br&gt;sure how to enforce this. Another reason could be os-related, but &amp;nbsp;
&lt;br&gt;again I am not sure which parameter to tune (max . files are 256) I'm &amp;nbsp;
&lt;br&gt;running Mac OS, 2GB Ram, Java 1.5.0_19, Netty 3.10.CR1
&lt;br&gt;&lt;br&gt;Any hints/pointers?
&lt;br&gt;&lt;br&gt;Regards
&lt;br&gt;Sebastian
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;netty-users mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3164479&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/HttpServer-example-blocking-after-16384-requests-tp3164479p3164479.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3162760</id>
	<title>Re: large packets</title>
	<published>2009-06-26T10:10:59Z</published>
	<updated>2009-06-26T10:10:59Z</updated>
	<author>
		<name>Trustin Lee</name>
	</author>
	<content type="html">lolwhat wrote:
&lt;br&gt;&amp;gt; Due to how the client stays alive, my server must send the update packet
&lt;br&gt;&amp;gt; every 600-700ms, is there any way aside from
&lt;br&gt;&amp;gt; channel.write(channelbufferobject), to send the packet or is this the only
&lt;br&gt;&amp;gt; way. i am asking because i read somewhere that channel.write causes a
&lt;br&gt;&amp;gt; performance problem, also there will be about 2000 connections, and to all
&lt;br&gt;&amp;gt; that packet must be sent every 600-700ms
&lt;br&gt;&lt;br&gt;Where did you read that? Channel.write() is the only way to write a 
&lt;br&gt;message in Netty. &amp;nbsp;It should be pretty fast. &amp;nbsp;Otherwise, let's 
&lt;br&gt;investigate the cause.
&lt;br&gt;&lt;br&gt;HTH
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Trustin Lee, &lt;a href=&quot;http://gleamynode.net&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net&lt;/a&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;netty-users mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3162760&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;&lt;div class=&quot;signature&quot;&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/large-packets-tp3155599p3162760.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3155599</id>
	<title>large packets</title>
	<published>2009-06-25T08:07:16Z</published>
	<updated>2009-06-25T08:07:16Z</updated>
	<author>
		<name>lolwhat</name>
	</author>
	<content type="html">Due to how the client stays alive, my server must send the update packet every 600-700ms, is there any way aside from channel.write(channelbufferobject), to send the packet or is this the only way. i am asking because i read somewhere that channel.write causes a performance problem, also there will be about 2000 connections, and to all that packet must be sent every 600-700ms
&lt;br&gt;also if you have any suggestions on anything related to netty please post i will need it, and i also wanted to ask 
&lt;br&gt;sbs.setOption(&amp;quot;child.receiveBufferSize&amp;quot;, 256);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sbs.setOption(&amp;quot;child.sendBufferSize&amp;quot;, 256);
&lt;br&gt;does this actually set the set the allocated space for the input/output stream?
&lt;br&gt;also how expensive is it to create a new channelbuffer object every 600-700ms?</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/large-packets-tp3155599p3155599.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3166161</id>
	<title>Re: UDP problem sending byte768 bytes</title>
	<published>2009-06-27T05:02:25Z</published>
	<updated>2009-06-27T05:02:25Z</updated>
	<author>
		<name>Trustin Lee</name>
	</author>
	<content type="html">Actually, there was a bug in DatagramChannelConfig implementation. &amp;nbsp;Now
&lt;br&gt;that the fix has been checked in, it should work both for NIO and OIO.
&lt;br&gt;You might give OIO UDP a try because it performs better in general.
&lt;br&gt;&lt;br&gt;HTH,
&lt;br&gt;Trustin
&lt;br&gt;&lt;br&gt;Neil Avery wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; We are using NIO - the configuration settings you provided in an earlier 
&lt;br&gt;&amp;gt; email failed to configure the OIO UDP buffer size
&lt;br&gt;&amp;gt; -Neil.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 2009/6/27 &amp;quot;이희승 (Trustin Lee)&amp;quot; &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3166161&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;trustin@...&lt;/a&gt; 
&lt;br&gt;&amp;gt; &amp;lt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3166161&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;trustin@...&lt;/a&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Thanks for the feed back. It seems like your application is running
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; in a controlled network. Otherwise such a large UDP packet could be
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; truncated or discarded.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Out of curiosity, do you use OIO UDP or NIO UDP?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Trustin
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Neil Avery wrote:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Oops - forgot to add my point - thats our particular use case -
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; so 768
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; is probably ok for most cases!
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Cheers.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2009/6/26 Neil Avery &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3166161&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;neil@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3166161&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;neil@...&lt;/a&gt;&amp;gt; &amp;lt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3166161&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;neil@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3166161&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;neil@...&lt;/a&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; We are using it (udp) to burst a search request to hundreds or
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; thousands of machines. Sending using TCP degrades as more machines
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; are added to the network - even when using our custom connection
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pooling we still see degradation - using udp provides much better
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; performance (and we cannot use multicast). Our message size is a
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; maximum of 5K, - btw - we use netty tcp elsewhere when reliablity is
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; required.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Cheers Neil.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2009/6/26 &amp;quot;이희승 (Trustin Lee)&amp;quot; &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3166161&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;trustin@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3166161&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;trustin@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3166161&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;trustin@...&lt;/a&gt; &amp;lt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3166161&amp;i=9&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;trustin@...&lt;/a&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; By the way, please let me know if you think the default (768) is
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; not sane and should be increased. I'm not really a UDP expert so
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; other people's suggestion is appreciated.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Thanks
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 이희승 (Trustin Lee) wrote:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Hi Neil,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; It's because the default receiveBufferSizePredictor of
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DatagramChannel
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; is FixedReceiveBufferSizePredictor(768). You can configure
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; the channel
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; to a FixedReceiveBufferSizePredictor with different payload
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; size. For
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; example:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DatagramChannel ch = ...;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ch.getConfig().setReceiveBufferSizePredictor(
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; new FixedReceiveBufferSizePredictor(1024));
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; or:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ConnectionlessBootstrap b = ...;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; b.setOption(&amp;quot;receiveBufferSizePredictor&amp;quot;,
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; new FixedReceiveBufferSizePredictor(1024));
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; BTW, I wouldn't recommend to using
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AdaptiveReceiveBufferSizePrediector
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for datagrams.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HTH,
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Trustin
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; On 2009-06-25 오전 4:49, neilson9 wrote:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Hi,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Im having a couple of problems sending UDP byte[]&amp;gt; 768K
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; For example if Im passing 1024bytes the buffer.readIndex
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; does not get
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; updated. The sender only passes 768 bytes and if I
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; manually set the
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; readIndex to 768 it sends another 768 bytes on the
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; second send. I would like
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; to iterate of the byte[] and use the offsets to prevent
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; copying data etc.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Any help appreciated.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Regards Neil.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; For example:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; byte[] payload = userdata....;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; channel = (DatagramChannel) b.bind(new
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; InetSocketAddress(0));
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ChannelBuffer buffer = dynamicBuffer(bytes.length);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; buffer.writeBytes(bytes);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; LOGGER.info(&amp;quot;Sending:&amp;quot; + bytes.length + &amp;quot; sent:&amp;quot; +
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; buffer.readerIndex());
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ChannelFuture channelFuture = channel.write(buffer, new
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; InetSocketAddress(uri.getHost(), port));
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // manually setting to see if it sends the remainder
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; buffer.readerIndex(768);
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; channelFuture = channel.write(buffer, new
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; InetSocketAddress(uri.getHost(), port));
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; LOGGER.info(&amp;quot;Sending:&amp;quot; + buffer.readerIndex());
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ------------------------------------------------------------------------
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _______________________________________________
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; netty-users mailing list
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3166161&amp;i=10&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt; &amp;lt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3166161&amp;i=11&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3166161&amp;i=12&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3166161&amp;i=13&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; --
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Trustin Lee, &lt;a href=&quot;http://gleamynode.net&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net&lt;/a&gt;&amp;nbsp;&amp;lt;&lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _______________________________________________
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; netty-users mailing list
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3166161&amp;i=14&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt; &amp;lt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3166161&amp;i=15&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3166161&amp;i=16&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3166161&amp;i=17&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ------------------------------------------------------------------------
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _______________________________________________
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; netty-users mailing list
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3166161&amp;i=18&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt; &amp;lt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3166161&amp;i=19&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; -- 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Trustin Lee, &lt;a href=&quot;http://gleamynode.net&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net&lt;/a&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; _______________________________________________
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; netty-users mailing list
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3166161&amp;i=20&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt; &amp;lt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3166161&amp;i=21&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; ------------------------------------------------------------------------
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; netty-users mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3166161&amp;i=22&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Trustin Lee, &lt;a href=&quot;http://gleamynode.net&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net&lt;/a&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;netty-users mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3166161&amp;i=23&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;&lt;div class=&quot;signature&quot;&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/UDP-problem-sending-byte---768-bytes-tp3151009p3166161.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3165652</id>
	<title>Re: UDP problem sending byte768 bytes</title>
	<published>2009-06-27T00:35:48Z</published>
	<updated>2009-06-27T00:35:48Z</updated>
	<author>
		<name>neilson9</name>
	</author>
	<content type="html">We are using NIO - the configuration settings you provided in an earlier email failed to configure the OIO UDP buffer size&lt;br&gt;-Neil.&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;2009/6/27 &amp;quot;이희승 (Trustin Lee)&amp;quot; &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3165652&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;trustin@...&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;
&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;Thanks for the feed back. &amp;nbsp;It seems like your application is running in a controlled network. &amp;nbsp;Otherwise such a large UDP packet could be truncated or discarded.&lt;br&gt;

&lt;br&gt;
Out of curiosity, do you use OIO UDP or NIO UDP?&lt;br&gt;
&lt;br&gt;
Trustin&lt;br&gt;
&lt;br&gt;
Neil Avery wrote:&lt;br&gt;
&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;&lt;div class=&quot;im&quot;&gt;
Oops - forgot to add my point - thats our particular use case - so 768&lt;br&gt;
is probably ok for most cases!&lt;br&gt;
Cheers.&lt;br&gt;
&lt;br&gt;&lt;/div&gt;
2009/6/26 Neil Avery &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3165652&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;neil@...&lt;/a&gt; &amp;lt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3165652&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;neil@...&lt;/a&gt;&amp;gt;&amp;gt;&lt;div class=&quot;im&quot;&gt;
&lt;br&gt;
&lt;br&gt;
 &amp;nbsp; &amp;nbsp;We are using it (udp) to burst a search request to hundreds or&lt;br&gt;
 &amp;nbsp; &amp;nbsp;thousands of machines. Sending using TCP degrades as more machines&lt;br&gt;
 &amp;nbsp; &amp;nbsp;are added to the network - even when using our custom connection&lt;br&gt;
 &amp;nbsp; &amp;nbsp;pooling we still see degradation - using udp provides much better&lt;br&gt;
 &amp;nbsp; &amp;nbsp;performance (and we cannot use multicast). Our message size is a&lt;br&gt;
 &amp;nbsp; &amp;nbsp;maximum of 5K, - btw - we use netty tcp elsewhere when reliablity is&lt;br&gt;
 &amp;nbsp; &amp;nbsp;required.&lt;br&gt;
 &amp;nbsp; &amp;nbsp;Cheers Neil.&lt;br&gt;
&lt;br&gt;
 &amp;nbsp; &amp;nbsp;2009/6/26 &amp;quot;이희승 (Trustin Lee)&amp;quot; &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3165652&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;trustin@...&lt;/a&gt;&lt;br&gt;&lt;/div&gt;
 &amp;nbsp; &amp;nbsp;&amp;lt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3165652&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;trustin@...&lt;/a&gt;&amp;gt;&amp;gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;&lt;br&gt;
&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;By the way, please let me know if you think the default (768) is&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;not sane and should be increased. I&amp;#39;m not really a UDP expert so&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;other people&amp;#39;s suggestion is appreciated.&lt;br&gt;
&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Thanks&lt;br&gt;
&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;이희승 (Trustin Lee) wrote:&lt;br&gt;
&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Hi Neil,&lt;br&gt;
&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;It&amp;#39;s because the default receiveBufferSizePredictor of&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DatagramChannel&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;is FixedReceiveBufferSizePredictor(768). You can configure&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;the channel&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;to a FixedReceiveBufferSizePredictor with different payload&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;size. For&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;example:&lt;br&gt;
&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DatagramChannel ch = ...;&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ch.getConfig().setReceiveBufferSizePredictor(&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new FixedReceiveBufferSizePredictor(1024));&lt;br&gt;
&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;or:&lt;br&gt;
&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ConnectionlessBootstrap b = ...;&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;b.setOption(&amp;quot;receiveBufferSizePredictor&amp;quot;,&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new FixedReceiveBufferSizePredictor(1024));&lt;br&gt;
&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BTW, I wouldn&amp;#39;t recommend to using&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AdaptiveReceiveBufferSizePrediector&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for datagrams.&lt;br&gt;
&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;HTH,&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Trustin&lt;br&gt;
&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;On 2009-06-25 오전 4:49, neilson9 wrote:&lt;br&gt;
&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Hi,&lt;br&gt;
&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Im having a couple of problems sending UDP byte[]&amp;gt; 768K&lt;br&gt;
&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;For example if Im passing 1024bytes the buffer.readIndex&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;does not get&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;updated. The sender only passes 768 bytes and if I&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;manually set the&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;readIndex to 768 it sends another 768 bytes on the&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;second send. I would like&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;to iterate of the byte[] and use the offsets to prevent&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;copying data etc.&lt;br&gt;
&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Any help appreciated.&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Regards Neil.&lt;br&gt;
&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;For example:&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;byte[] payload = userdata....;&lt;br&gt;
&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;channel = (DatagramChannel) b.bind(new&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;InetSocketAddress(0));&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ChannelBuffer buffer = dynamicBuffer(bytes.length);&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;buffer.writeBytes(bytes);&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LOGGER.info(&amp;quot;Sending:&amp;quot; + bytes.length + &amp;quot; sent:&amp;quot; +&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;buffer.readerIndex());&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ChannelFuture channelFuture = channel.write(buffer, new&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;InetSocketAddress(uri.getHost(), port));&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// manually setting to see if it sends the remainder&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;buffer.readerIndex(768);&lt;br&gt;
&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;channelFuture = channel.write(buffer, new&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;InetSocketAddress(uri.getHost(), port));&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LOGGER.info(&amp;quot;Sending:&amp;quot; + buffer.readerIndex());&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;------------------------------------------------------------------------&lt;br&gt;
&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_______________________________________________&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;netty-users mailing list&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3165652&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt; &amp;lt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3165652&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;&amp;gt;&lt;div class=&quot;im&quot;&gt;
&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;--&lt;br&gt;&lt;/div&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Trustin Lee, &lt;a href=&quot;http://gleamynode.net&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net&lt;/a&gt; &amp;lt;&lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&amp;gt;&lt;br&gt;
&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_______________________________________________&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;netty-users mailing list&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3165652&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt; &amp;lt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3165652&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;&amp;gt;&lt;div class=&quot;im&quot;&gt;
&lt;br&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
------------------------------------------------------------------------&lt;br&gt;
&lt;br&gt;
_______________________________________________&lt;br&gt;
netty-users mailing list&lt;br&gt;
&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3165652&amp;i=9&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;
&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;
&lt;br&gt;
&lt;br&gt;
-- &lt;br&gt;
Trustin Lee, &lt;a href=&quot;http://gleamynode.net&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
_______________________________________________&lt;br&gt;
netty-users mailing list&lt;br&gt;
&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3165652&amp;i=10&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;netty-users mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3165652&amp;i=11&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/UDP-problem-sending-byte---768-bytes-tp3151009p3165652.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3164953</id>
	<title>Re: UDP problem sending byte768 bytes</title>
	<published>2009-06-26T19:03:35Z</published>
	<updated>2009-06-26T19:03:35Z</updated>
	<author>
		<name>Trustin Lee</name>
	</author>
	<content type="html">Thanks for the feed back. &amp;nbsp;It seems like your application is running in 
&lt;br&gt;a controlled network. &amp;nbsp;Otherwise such a large UDP packet could be 
&lt;br&gt;truncated or discarded.
&lt;br&gt;&lt;br&gt;Out of curiosity, do you use OIO UDP or NIO UDP?
&lt;br&gt;&lt;br&gt;Trustin
&lt;br&gt;&lt;br&gt;Neil Avery wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Oops - forgot to add my point - thats our particular use case - so 768
&lt;br&gt;&amp;gt; is probably ok for most cases!
&lt;br&gt;&amp;gt; Cheers.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; 2009/6/26 Neil Avery &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3164953&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;neil@...&lt;/a&gt; &amp;lt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3164953&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;neil@...&lt;/a&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; We are using it (udp) to burst a search request to hundreds or
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; thousands of machines. Sending using TCP degrades as more machines
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; are added to the network - even when using our custom connection
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; pooling we still see degradation - using udp provides much better
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; performance (and we cannot use multicast). Our message size is a
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; maximum of 5K, - btw - we use netty tcp elsewhere when reliablity is
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; required.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Cheers Neil.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; 2009/6/26 &amp;quot;이희승 (Trustin Lee)&amp;quot; &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3164953&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;trustin@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;lt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3164953&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;trustin@...&lt;/a&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; By the way, please let me know if you think the default (768) is
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; not sane and should be increased. I'm not really a UDP expert so
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; other people's suggestion is appreciated.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Thanks
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 이희승 (Trustin Lee) wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Hi Neil,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; It's because the default receiveBufferSizePredictor of
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DatagramChannel
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; is FixedReceiveBufferSizePredictor(768). You can configure
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; the channel
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; to a FixedReceiveBufferSizePredictor with different payload
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; size. For
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; example:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DatagramChannel ch = ...;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ch.getConfig().setReceiveBufferSizePredictor(
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; new FixedReceiveBufferSizePredictor(1024));
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; or:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ConnectionlessBootstrap b = ...;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; b.setOption(&amp;quot;receiveBufferSizePredictor&amp;quot;,
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; new FixedReceiveBufferSizePredictor(1024));
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; BTW, I wouldn't recommend to using
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AdaptiveReceiveBufferSizePrediector
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for datagrams.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HTH,
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Trustin
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; On 2009-06-25 오전 4:49, neilson9 wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Im having a couple of problems sending UDP byte[]&amp;gt; 768K
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; For example if Im passing 1024bytes the buffer.readIndex
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; does not get
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; updated. The sender only passes 768 bytes and if I
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; manually set the
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; readIndex to 768 it sends another 768 bytes on the
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; second send. I would like
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; to iterate of the byte[] and use the offsets to prevent
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; copying data etc.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Any help appreciated.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Regards Neil.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; For example:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; byte[] payload = userdata....;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; channel = (DatagramChannel) b.bind(new
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; InetSocketAddress(0));
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ChannelBuffer buffer = dynamicBuffer(bytes.length);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; buffer.writeBytes(bytes);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; LOGGER.info(&amp;quot;Sending:&amp;quot; + bytes.length + &amp;quot; sent:&amp;quot; +
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; buffer.readerIndex());
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ChannelFuture channelFuture = channel.write(buffer, new
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; InetSocketAddress(uri.getHost(), port));
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // manually setting to see if it sends the remainder
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; buffer.readerIndex(768);
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; channelFuture = channel.write(buffer, new
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; InetSocketAddress(uri.getHost(), port));
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; LOGGER.info(&amp;quot;Sending:&amp;quot; + buffer.readerIndex());
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ------------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _______________________________________________
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; netty-users mailing list
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3164953&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt; &amp;lt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3164953&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; --
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Trustin Lee, &lt;a href=&quot;http://gleamynode.net&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net&lt;/a&gt;&amp;nbsp;&amp;lt;&lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _______________________________________________
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; netty-users mailing list
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3164953&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt; &amp;lt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3164953&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ------------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; netty-users mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3164953&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Trustin Lee, &lt;a href=&quot;http://gleamynode.net&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net&lt;/a&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;netty-users mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3164953&amp;i=9&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;&lt;div class=&quot;signature&quot;&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/UDP-problem-sending-byte---768-bytes-tp3151009p3164953.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3164089</id>
	<title>Re: UDP problem sending byte768 bytes</title>
	<published>2009-06-26T14:26:22Z</published>
	<updated>2009-06-26T14:26:22Z</updated>
	<author>
		<name>neilson9</name>
	</author>
	<content type="html">&lt;div&gt;Oops - forgot to add my point - thats our particular&amp;nbsp;use case - so 768 is probably ok for most cases!&lt;/div&gt;
&lt;div&gt;Cheers.&lt;br&gt;&lt;br&gt;&lt;/div&gt;
&lt;div class=&quot;gmail_quote&quot;&gt;2009/6/26 Neil Avery &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3164089&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;neil@...&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;
&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid&quot;&gt;
&lt;div&gt;We are using it (udp)&amp;nbsp;to burst&amp;nbsp;a search request to hundreds or thousands of machines. Sending using TCP degrades as more machines are added to the network - even when using our custom connection pooling we still see degradation - using udp provides much better performance (and we cannot use multicast). Our message size is a maximum of 5K, - btw - we use netty tcp elsewhere when reliablity is required.&amp;nbsp;&lt;/div&gt;

&lt;div&gt;Cheers Neil.&lt;br&gt;&lt;br&gt;&lt;/div&gt;
&lt;div class=&quot;gmail_quote&quot;&gt;2009/6/26 &amp;quot;이희승 (Trustin Lee)&amp;quot; &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3164089&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;trustin@...&lt;/a&gt;&amp;gt;&lt;/span&gt; 
&lt;div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div class=&quot;h5&quot;&gt;&lt;br&gt;
&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid&quot;&gt;By the way, please let me know if you think the default (768) is not sane and should be increased. &amp;nbsp;I&amp;#39;m not really a UDP expert so other people&amp;#39;s suggestion is appreciated.&lt;br&gt;
&lt;br&gt;Thanks&lt;br&gt;&lt;br&gt;이희승 (Trustin Lee) wrote:&lt;br&gt;
&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid&quot;&gt;Hi Neil,&lt;br&gt;&lt;br&gt;It&amp;#39;s because the default receiveBufferSizePredictor of DatagramChannel&lt;br&gt;is FixedReceiveBufferSizePredictor(768). &amp;nbsp;You can configure the channel&lt;br&gt;
to a FixedReceiveBufferSizePredictor with different payload size. &amp;nbsp;For&lt;br&gt;example:&lt;br&gt;&lt;br&gt;&amp;nbsp; DatagramChannel ch = ...;&lt;br&gt;&amp;nbsp; ch.getConfig().setReceiveBufferSizePredictor(&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; new FixedReceiveBufferSizePredictor(1024));&lt;br&gt;
&lt;br&gt;or:&lt;br&gt;&lt;br&gt;&amp;nbsp; ConnectionlessBootstrap b = ...;&lt;br&gt;&amp;nbsp; b.setOption(&amp;quot;receiveBufferSizePredictor&amp;quot;,&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; new FixedReceiveBufferSizePredictor(1024));&lt;br&gt;&lt;br&gt;BTW, I wouldn&amp;#39;t recommend to using AdaptiveReceiveBufferSizePrediector&lt;br&gt;
for datagrams.&lt;br&gt;&lt;br&gt;HTH,&lt;br&gt;Trustin&lt;br&gt;&lt;br&gt;On 2009-06-25 오전 4:49, neilson9 wrote:&lt;br&gt;
&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid&quot;&gt;Hi,&lt;br&gt;&lt;br&gt;Im having a couple of problems sending UDP byte[]&amp;gt; &amp;nbsp;768K&lt;br&gt;&lt;br&gt;For example if Im passing 1024bytes the buffer.readIndex does not get&lt;br&gt;
updated. The sender only passes 768 bytes and if I manually set the&lt;br&gt;readIndex to 768 it sends another 768 bytes on the second send. I would like&lt;br&gt;to iterate of the byte[] and use the offsets to prevent copying data etc.&lt;br&gt;
&lt;br&gt;Any help appreciated.&lt;br&gt;Regards Neil.&lt;br&gt;&lt;br&gt;For example:&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;byte[] payload = userdata....;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; channel = (DatagramChannel) b.bind(new InetSocketAddress(0));&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ChannelBuffer buffer = dynamicBuffer(bytes.length);&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; buffer.writeBytes(bytes);&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; LOGGER.info(&amp;quot;Sending:&amp;quot; + bytes.length + &amp;quot; sent:&amp;quot; + buffer.readerIndex());&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ChannelFuture channelFuture = channel.write(buffer, new&lt;br&gt;
InetSocketAddress(uri.getHost(), port));&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// manually setting to see if it sends the remainder&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; buffer.readerIndex(768);&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; channelFuture = channel.write(buffer, new&lt;br&gt;
InetSocketAddress(uri.getHost(), port));&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; LOGGER.info(&amp;quot;Sending:&amp;quot; + buffer.readerIndex());&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------&lt;br&gt;
&lt;br&gt;_______________________________________________&lt;br&gt;netty-users mailing list&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3164089&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;
&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;-- &lt;br&gt;Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net&lt;/a&gt;&lt;br&gt;&lt;br&gt;_______________________________________________&lt;br&gt;netty-users mailing list&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3164089&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;netty-users mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3164089&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/UDP-problem-sending-byte---768-bytes-tp3151009p3164089.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3164084</id>
	<title>Re: UDP problem sending byte768 bytes</title>
	<published>2009-06-26T14:25:24Z</published>
	<updated>2009-06-26T14:25:24Z</updated>
	<author>
		<name>neilson9</name>
	</author>
	<content type="html">&lt;div&gt;We are using it (udp)&amp;nbsp;to burst&amp;nbsp;a search request to hundreds or thousands of machines. Sending using TCP degrades as more machines are added to the network - even when using our custom connection pooling we still see degradation - using udp provides much better performance (and we cannot use multicast). Our message size is a maximum of 5K, - btw - we use netty tcp elsewhere when reliablity is required.&amp;nbsp;&lt;/div&gt;

&lt;div&gt;Cheers Neil.&lt;br&gt;&lt;br&gt;&lt;/div&gt;
&lt;div class=&quot;gmail_quote&quot;&gt;2009/6/26 &amp;quot;이희승 (Trustin Lee)&amp;quot; &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3164084&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;trustin@...&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;
&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid&quot;&gt;By the way, please let me know if you think the default (768) is not sane and should be increased. &amp;nbsp;I&amp;#39;m not really a UDP expert so other people&amp;#39;s suggestion is appreciated.&lt;br&gt;
&lt;br&gt;Thanks&lt;br&gt;&lt;br&gt;이희승 (Trustin Lee) wrote:&lt;br&gt;
&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid&quot;&gt;Hi Neil,&lt;br&gt;&lt;br&gt;It&amp;#39;s because the default receiveBufferSizePredictor of DatagramChannel&lt;br&gt;is FixedReceiveBufferSizePredictor(768). &amp;nbsp;You can configure the channel&lt;br&gt;
to a FixedReceiveBufferSizePredictor with different payload size. &amp;nbsp;For&lt;br&gt;example:&lt;br&gt;&lt;br&gt;&amp;nbsp; DatagramChannel ch = ...;&lt;br&gt;&amp;nbsp; ch.getConfig().setReceiveBufferSizePredictor(&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; new FixedReceiveBufferSizePredictor(1024));&lt;br&gt;
&lt;br&gt;or:&lt;br&gt;&lt;br&gt;&amp;nbsp; ConnectionlessBootstrap b = ...;&lt;br&gt;&amp;nbsp; b.setOption(&amp;quot;receiveBufferSizePredictor&amp;quot;,&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; new FixedReceiveBufferSizePredictor(1024));&lt;br&gt;&lt;br&gt;BTW, I wouldn&amp;#39;t recommend to using AdaptiveReceiveBufferSizePrediector&lt;br&gt;
for datagrams.&lt;br&gt;&lt;br&gt;HTH,&lt;br&gt;Trustin&lt;br&gt;&lt;br&gt;On 2009-06-25 오전 4:49, neilson9 wrote:&lt;br&gt;
&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid&quot;&gt;Hi,&lt;br&gt;&lt;br&gt;Im having a couple of problems sending UDP byte[]&amp;gt; &amp;nbsp;768K&lt;br&gt;&lt;br&gt;For example if Im passing 1024bytes the buffer.readIndex does not get&lt;br&gt;
updated. The sender only passes 768 bytes and if I manually set the&lt;br&gt;readIndex to 768 it sends another 768 bytes on the second send. I would like&lt;br&gt;to iterate of the byte[] and use the offsets to prevent copying data etc.&lt;br&gt;
&lt;br&gt;Any help appreciated.&lt;br&gt;Regards Neil.&lt;br&gt;&lt;br&gt;For example:&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;byte[] payload = userdata....;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; channel = (DatagramChannel) b.bind(new InetSocketAddress(0));&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ChannelBuffer buffer = dynamicBuffer(bytes.length);&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; buffer.writeBytes(bytes);&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; LOGGER.info(&amp;quot;Sending:&amp;quot; + bytes.length + &amp;quot; sent:&amp;quot; + buffer.readerIndex());&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ChannelFuture channelFuture = channel.write(buffer, new&lt;br&gt;
InetSocketAddress(uri.getHost(), port));&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// manually setting to see if it sends the remainder&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; buffer.readerIndex(768);&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; channelFuture = channel.write(buffer, new&lt;br&gt;
InetSocketAddress(uri.getHost(), port));&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; LOGGER.info(&amp;quot;Sending:&amp;quot; + buffer.readerIndex());&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------&lt;br&gt;
&lt;br&gt;_______________________________________________&lt;br&gt;netty-users mailing list&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3164084&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;
&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;-- &lt;br&gt;Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net&lt;/a&gt;&lt;br&gt;&lt;br&gt;_______________________________________________&lt;br&gt;netty-users mailing list&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3164084&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;netty-users mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3164084&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/UDP-problem-sending-byte---768-bytes-tp3151009p3164084.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3162489</id>
	<title>Re: UDP problem sending byte768 bytes</title>
	<published>2009-06-26T09:32:26Z</published>
	<updated>2009-06-26T09:32:26Z</updated>
	<author>
		<name>Trustin Lee</name>
	</author>
	<content type="html">By the way, please let me know if you think the default (768) is not 
&lt;br&gt;sane and should be increased. &amp;nbsp;I'm not really a UDP expert so other 
&lt;br&gt;people's suggestion is appreciated.
&lt;br&gt;&lt;br&gt;Thanks
&lt;br&gt;&lt;br&gt;이희승 (Trustin Lee) wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi Neil,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; It's because the default receiveBufferSizePredictor of DatagramChannel
&lt;br&gt;&amp;gt; is FixedReceiveBufferSizePredictor(768). &amp;nbsp;You can configure the channel
&lt;br&gt;&amp;gt; to a FixedReceiveBufferSizePredictor with different payload size. &amp;nbsp;For
&lt;br&gt;&amp;gt; example:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;DatagramChannel ch = ...;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;ch.getConfig().setReceiveBufferSizePredictor(
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new FixedReceiveBufferSizePredictor(1024));
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; or:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;ConnectionlessBootstrap b = ...;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;b.setOption(&amp;quot;receiveBufferSizePredictor&amp;quot;,
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new FixedReceiveBufferSizePredictor(1024));
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; BTW, I wouldn't recommend to using AdaptiveReceiveBufferSizePrediector
&lt;br&gt;&amp;gt; for datagrams.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; HTH,
&lt;br&gt;&amp;gt; Trustin
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On 2009-06-25 오전 4:49, neilson9 wrote:
&lt;br&gt;&amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Im having a couple of problems sending UDP byte[]&amp;gt; &amp;nbsp;768K
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; For example if Im passing 1024bytes the buffer.readIndex does not get
&lt;br&gt;&amp;gt;&amp;gt; updated. The sender only passes 768 bytes and if I manually set the
&lt;br&gt;&amp;gt;&amp;gt; readIndex to 768 it sends another 768 bytes on the second send. I would like
&lt;br&gt;&amp;gt;&amp;gt; to iterate of the byte[] and use the offsets to prevent copying data etc.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Any help appreciated.
&lt;br&gt;&amp;gt;&amp;gt; Regards Neil.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; For example:
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; byte[] payload = userdata....;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; 		 channel = (DatagramChannel) b.bind(new InetSocketAddress(0));
&lt;br&gt;&amp;gt;&amp;gt; 		 ChannelBuffer buffer = dynamicBuffer(bytes.length);
&lt;br&gt;&amp;gt;&amp;gt; 		 buffer.writeBytes(bytes);
&lt;br&gt;&amp;gt;&amp;gt; 		 LOGGER.info(&amp;quot;Sending:&amp;quot; + bytes.length + &amp;quot; sent:&amp;quot; + buffer.readerIndex());
&lt;br&gt;&amp;gt;&amp;gt; 		 ChannelFuture channelFuture = channel.write(buffer, new
&lt;br&gt;&amp;gt;&amp;gt; InetSocketAddress(uri.getHost(), port));
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // manually setting to see if it sends the remainder
&lt;br&gt;&amp;gt;&amp;gt; 		 buffer.readerIndex(768);
&lt;br&gt;&amp;gt;&amp;gt; 		
&lt;br&gt;&amp;gt;&amp;gt; 		 channelFuture = channel.write(buffer, new
&lt;br&gt;&amp;gt;&amp;gt; InetSocketAddress(uri.getHost(), port));
&lt;br&gt;&amp;gt;&amp;gt; 		 LOGGER.info(&amp;quot;Sending:&amp;quot; + buffer.readerIndex());
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ------------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; netty-users mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3162489&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Trustin Lee, &lt;a href=&quot;http://gleamynode.net&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net&lt;/a&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;netty-users mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3162489&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;&lt;div class=&quot;signature&quot;&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/UDP-problem-sending-byte---768-bytes-tp3151009p3162489.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3153168</id>
	<title>Re: UDP problem sending byte768 bytes</title>
	<published>2009-06-24T21:46:10Z</published>
	<updated>2009-06-24T21:46:10Z</updated>
	<author>
		<name>Trustin Lee</name>
	</author>
	<content type="html">Hi Neil,
&lt;br&gt;&lt;br&gt;It's because the default receiveBufferSizePredictor of DatagramChannel
&lt;br&gt;is FixedReceiveBufferSizePredictor(768). &amp;nbsp;You can configure the channel
&lt;br&gt;to a FixedReceiveBufferSizePredictor with different payload size. &amp;nbsp;For
&lt;br&gt;example:
&lt;br&gt;&lt;br&gt;&amp;nbsp; DatagramChannel ch = ...;
&lt;br&gt;&amp;nbsp; ch.getConfig().setReceiveBufferSizePredictor(
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; new FixedReceiveBufferSizePredictor(1024));
&lt;br&gt;&lt;br&gt;or:
&lt;br&gt;&lt;br&gt;&amp;nbsp; ConnectionlessBootstrap b = ...;
&lt;br&gt;&amp;nbsp; b.setOption(&amp;quot;receiveBufferSizePredictor&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; new FixedReceiveBufferSizePredictor(1024));
&lt;br&gt;&lt;br&gt;BTW, I wouldn't recommend to using AdaptiveReceiveBufferSizePrediector
&lt;br&gt;for datagrams.
&lt;br&gt;&lt;br&gt;HTH,
&lt;br&gt;Trustin
&lt;br&gt;&lt;br&gt;On 2009-06-25 오전 4:49, neilson9 wrote:
&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Im having a couple of problems sending UDP byte[] &amp;gt; 768K
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; For example if Im passing 1024bytes the buffer.readIndex does not get
&lt;br&gt;&amp;gt; updated. The sender only passes 768 bytes and if I manually set the
&lt;br&gt;&amp;gt; readIndex to 768 it sends another 768 bytes on the second send. I would like
&lt;br&gt;&amp;gt; to iterate of the byte[] and use the offsets to prevent copying data etc.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Any help appreciated. 
&lt;br&gt;&amp;gt; Regards Neil.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; For example:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;byte[] payload = userdata....;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt; 		 channel = (DatagramChannel) b.bind(new InetSocketAddress(0));
&lt;br&gt;&amp;gt; 		 ChannelBuffer buffer = dynamicBuffer(bytes.length);
&lt;br&gt;&amp;gt; 		 buffer.writeBytes(bytes);
&lt;br&gt;&amp;gt; 		 LOGGER.info(&amp;quot;Sending:&amp;quot; + bytes.length + &amp;quot; sent:&amp;quot; + buffer.readerIndex());
&lt;br&gt;&amp;gt; 		 ChannelFuture channelFuture = channel.write(buffer, new
&lt;br&gt;&amp;gt; InetSocketAddress(uri.getHost(), port));
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// manually setting to see if it sends the remainder
&lt;br&gt;&amp;gt; 		 buffer.readerIndex(768);
&lt;br&gt;&amp;gt; 		 
&lt;br&gt;&amp;gt; 		 channelFuture = channel.write(buffer, new
&lt;br&gt;&amp;gt; InetSocketAddress(uri.getHost(), port));
&lt;br&gt;&amp;gt; 		 LOGGER.info(&amp;quot;Sending:&amp;quot; + buffer.readerIndex());
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt; &lt;br /&gt;_______________________________________________
&lt;br&gt;netty-users mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3153168&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;&lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://n2.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;signature.asc&lt;/strong&gt; (267 bytes) &lt;a href=&quot;http://n2.nabble.com/attachment/3153168/0/signature.asc&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;signature&quot;&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/UDP-problem-sending-byte---768-bytes-tp3151009p3153168.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3151009</id>
	<title>UDP problem sending byte[] 768 bytes</title>
	<published>2009-06-24T12:49:06Z</published>
	<updated>2009-06-24T12:49:06Z</updated>
	<author>
		<name>neilson9</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;Im having a couple of problems sending UDP byte[] &amp;gt; 768K
&lt;br&gt;&lt;br&gt;For example if Im passing 1024bytes the buffer.readIndex does not get updated. The sender only passes 768 bytes and if I manually set the readIndex to 768 it sends another 768 bytes on the second send. I would like to iterate of the byte[] and use the offsets to prevent copying data etc.
&lt;br&gt;&lt;br&gt;Any help appreciated. 
&lt;br&gt;Regards Neil.
&lt;br&gt;&lt;br&gt;For example:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;byte[] payload = userdata....;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;channel = (DatagramChannel) b.bind(new InetSocketAddress(0));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ChannelBuffer buffer = dynamicBuffer(bytes.length);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;buffer.writeBytes(bytes);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LOGGER.info(&amp;quot;Sending:&amp;quot; + bytes.length + &amp;quot; sent:&amp;quot; + buffer.readerIndex());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ChannelFuture channelFuture = channel.write(buffer, new InetSocketAddress(uri.getHost(), port));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// manually setting to see if it sends the remainder
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;buffer.readerIndex(768);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;channelFuture = channel.write(buffer, new InetSocketAddress(uri.getHost(), port));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LOGGER.info(&amp;quot;Sending:&amp;quot; + buffer.readerIndex());
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/UDP-problem-sending-byte---768-bytes-tp3151009p3151009.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3153172</id>
	<title>Re: Name</title>
	<published>2009-06-24T21:47:22Z</published>
	<updated>2009-06-24T21:47:22Z</updated>
	<author>
		<name>Trustin Lee</name>
	</author>
	<content type="html">NETwork + TY (to make it a girl's name) :)
&lt;br&gt;&lt;br&gt;On 2009-06-25 오전 2:00, David Hoyt wrote:
&lt;br&gt;&amp;gt; Just curious - where did netty get its name?
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt; &lt;br /&gt;_______________________________________________
&lt;br&gt;netty-users mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3153172&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;&lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://n2.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;signature.asc&lt;/strong&gt; (267 bytes) &lt;a href=&quot;http://n2.nabble.com/attachment/3153172/0/signature.asc&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;signature&quot;&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/New-Exception-with-CR1-preventing-a-full-shutdown-tp3143936p3153172.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3152315</id>
	<title>Name</title>
	<published>2009-06-24T10:00:23Z</published>
	<updated>2009-06-24T10:00:23Z</updated>
	<author>
		<name>David Hoyt</name>
	</author>
	<content type="html">Just curious - where did netty get its name?
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;netty-users mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3152315&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/New-Exception-with-CR1-preventing-a-full-shutdown-tp3143936p3152315.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3146755</id>
	<title>Re: New Exception with CR1 preventing a full shutdown</title>
	<published>2009-06-23T21:47:50Z</published>
	<updated>2009-06-23T21:47:50Z</updated>
	<author>
		<name>IanS</name>
	</author>
	<content type="html">&lt;br&gt;1494 works for me, and I don't see any new problems.
&lt;br&gt;&lt;br&gt;Thanks, Ian
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;----- Original Message ----
&lt;br&gt;From: 이희승 (Trustin Lee) &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3146755&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;trustin@...&lt;/a&gt;&amp;gt;
&lt;br&gt;To: &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3146755&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;Sent: Tuesday, June 23, 2009 8:01:08 PM
&lt;br&gt;Subject: Re: New Exception with CR1 preventing a full shutdown
&lt;br&gt;&lt;br&gt;It's revision 1494 actually. :)
&lt;br&gt;&lt;br&gt;On 2009-06-24 오전 11:55, &amp;quot;이희승 (Trustin Lee) wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi Ian,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I've just checked in the fix at revision 1493. &amp;nbsp;Could you confirm that
&lt;br&gt;&amp;gt; my fix works for you?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; And here's the related JIRA issue:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; * &lt;a href=&quot;https://jira.jboss.org/jira/browse/NETTY-182&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/browse/NETTY-182&lt;/a&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thanks!
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; On 2009-06-24 오전 8:48, Ian Swett wrote:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I think the reason it is not exiting is actually my fault, because I'm blocking on LinkedBlockingQueue.take() forever in the last thread, and I believe the original error/stack trace is causing me not to get the response I'm expecting. &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Here is the jstack output:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Debugger attached successfully.
&lt;br&gt;&amp;gt;&amp;gt; Client compiler detected.
&lt;br&gt;&amp;gt;&amp;gt; JVM version is 1.5.0_19-137
&lt;br&gt;&amp;gt;&amp;gt; Deadlock Detection:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; No deadlocks found.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thread t@60931: (state = IN_NATIVE)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- sun.nio.ch.KQueueArrayWrapper.kevent0(int, long, int, long) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- sun.nio.ch.KQueueArrayWrapper.poll(long) @bci=12, line=136 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- sun.nio.ch.KQueueSelectorImpl.doSelect(long) @bci=46, line=69 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- sun.nio.ch.SelectorImpl.lockAndDoSelect(long) @bci=37, line=69 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- sun.nio.ch.SelectorImpl.select(long) @bci=30, line=80 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.jboss.netty.channel.socket.nio.NioWorker.run() @bci=60, line=165 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.jboss.netty.util.ThreadRenamingRunnable.run() @bci=55, line=110 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.jboss.netty.util.internal.IoWorkerRunnable.run() @bci=13, line=53 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.util.concurrent.ThreadPoolExecutor$Worker.runTask(java.lang.Runnable) @bci=43, line=651 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=28, line=676 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.lang.Thread.run() @bci=11, line=613 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thread t@64003: (state = IN_NATIVE)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- sun.nio.ch.KQueueArrayWrapper.kevent0(int, long, int, long) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- sun.nio.ch.KQueueArrayWrapper.poll(long) @bci=12, line=136 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- sun.nio.ch.KQueueSelectorImpl.doSelect(long) @bci=46, line=69 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- sun.nio.ch.SelectorImpl.lockAndDoSelect(long) @bci=37, line=69 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- sun.nio.ch.SelectorImpl.select(long) @bci=30, line=80 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- sun.nio.ch.ServerSocketAdaptor.accept() @bci=165, line=105 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink$Boss.run() @bci=10, line=215 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.jboss.netty.util.ThreadRenamingRunnable.run() @bci=55, line=110 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.jboss.netty.util.internal.IoWorkerRunnable.run() @bci=13, line=53 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.util.concurrent.ThreadPoolExecutor$Worker.runTask(java.lang.Runnable) @bci=43, line=651 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=28, line=676 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.lang.Thread.run() @bci=11, line=613 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thread t@66051: (state = BLOCKED)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.util.TimerThread.mainLoop() @bci=201, line=509 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.util.TimerThread.run() @bci=1, line=462 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thread t@66307: (state = IN_NATIVE)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.net.PlainSocketImpl.socketAccept(java.net.SocketImpl) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.net.PlainSocketImpl.accept(java.net.SocketImpl) @bci=7, line=384 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.net.ServerSocket.implAccept(java.net.Socket) @bci=50, line=450 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.net.ServerSocket.accept() @bci=48, line=421 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.mortbay.jetty.bio.SocketConnector.accept(int) @bci=4, line=99 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.mortbay.jetty.AbstractConnector$Acceptor.run() @bci=151, line=707 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.mortbay.thread.QueuedThreadPool$PoolThread.run() @bci=25, line=520 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thread t@66563: (state = BLOCKED)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.mortbay.thread.QueuedThreadPool$PoolThread.run() @bci=275, line=563 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thread t@66819: (state = IN_NATIVE)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.net.SocketInputStream.socketRead0(java.io.FileDescriptor, byte[], int, int, int) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.net.SocketInputStream.read(byte[], int, int) @bci=84, line=129 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- sun.nio.cs.StreamDecoder$CharsetSD.readBytes() @bci=130, line=411 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- sun.nio.cs.StreamDecoder$CharsetSD.implRead(char[], int, int) @bci=112, line=453 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- sun.nio.cs.StreamDecoder.read(char[], int, int) @bci=180, line=183 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.io.InputStreamReader.read(char[], int, int) @bci=7, line=167 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.io.BufferedReader.fill() @bci=145, line=136 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.io.BufferedReader.readLine(boolean) @bci=44, line=299 (Compiled frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.io.BufferedReader.readLine() @bci=2, line=362 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.eclipse.jdt.internal.junit.runner.RemoteTestRunner$ReaderThread.run() @bci=9, line=140 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thread t@68099: (state = BLOCKED)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thread t@68355: (state = BLOCKED)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.lang.ref.ReferenceQueue.remove(long) @bci=44, line=120 (Compiled frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.lang.ref.ReferenceQueue.remove() @bci=2, line=136 (Compiled frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.lang.ref.Finalizer$FinalizerThread.run() @bci=3, line=159 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thread t@68611: (state = BLOCKED)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.lang.Object.wait() @bci=2, line=474 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.lang.ref.Reference$ReferenceHandler.run() @bci=46, line=116 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thread t@68867: (state = BLOCKED)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- sun.misc.Unsafe.park(boolean, long) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.util.concurrent.locks.LockSupport.park() @bci=5, line=118 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await() @bci=41, line=1841 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.util.concurrent.LinkedBlockingQueue.take() @bci=29, line=359 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- com.appliedminds.mql.MQLServer.start() @bci=4, line=406 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- junit.framework.TestCase.runBare() @bci=3, line=128 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- junit.framework.TestResult$1.protect() @bci=4, line=106 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- junit.framework.TestResult.runProtected(junit.framework.Test, junit.framework.Protectable) @bci=1, line=124 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- junit.framework.TestResult.run(junit.framework.TestCase) @bci=18, line=109 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- junit.framework.TestCase.run(junit.framework.TestResult) @bci=2, line=120 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- junit.framework.TestSuite.runTest(junit.framework.Test, junit.framework.TestResult) @bci=2, line=230 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- junit.framework.TestSuite.run(junit.framework.TestResult) @bci=37, line=225 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(org.eclipse.jdt.internal.junit.runner.TestExecution) @bci=40, line=130 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.eclipse.jdt.internal.junit.runner.TestExecution.run(org.eclipse.jdt.internal.junit.runner.ITestReference[]) @bci=17, line=38 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(java.lang.String[], java.lang.String, org.eclipse.jdt.internal.junit.runner.TestExecution) @bci=61, line=460 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(org.eclipse.jdt.internal.junit.runner.TestExecution) @bci=10, line=673 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run() @bci=70, line=386 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(java.lang.String[]) @bci=14, line=196 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ----- Original Message ----
&lt;br&gt;&amp;gt;&amp;gt; From: 이희승 (Trustin Lee) &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3146755&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;trustin@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; To: &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3146755&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; Sent: Tuesday, June 23, 2009 10:54:06 AM
&lt;br&gt;&amp;gt;&amp;gt; Subject: Re: New Exception with CR1 preventing a full shutdown
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Hi Ian,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thanks for reporting the problem. &amp;nbsp;This bug has been triggered by the
&lt;br&gt;&amp;gt;&amp;gt; side effect of AIX bug fix. &amp;nbsp;Could you post the full thread dump when it
&lt;br&gt;&amp;gt;&amp;gt; does not shut down? (i.e. two servers in one vm case)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; On 2009-06-24 오전 2:29, Ian Swett wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; I get the following exception at a point during startup. &amp;nbsp;The program runs properly after this exception, but when I got to shutdown, there are threads which don't get shutdown, so the JVM doesn't exit. &amp;nbsp;Sometimes I do not get this exception, and then everything goes smoothly. &amp;nbsp;I verified that when I switch back to Beta3, this problem never occurs. &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; I am running two Netty servers in the same JVM. &amp;nbsp;When I only run one, this exception still occurs, but the JVM shuts down cleanly.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Exception in thread &amp;quot;pool-1-thread-1&amp;quot; java.nio.channels.ClosedSelectorException
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:66)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at sun.nio.ch.SelectorImpl.selectNow(SelectorImpl.java:88)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at sun.nio.ch.Util.releaseTemporarySelector(Util.java:135)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at sun.nio.ch.ServerSocketAdaptor.accept(ServerSocketAdaptor.java:120)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink$Boss.run(NioServerSocketPipelineSink.java:215)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:110)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at org.jboss.netty.util.internal.IoWorkerRunnable.run(IoWorkerRunnable.java:53)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at java.lang.Thread.run(Thread.java:613)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; This is on MacOSX 10.5.7 with JDK 1.5.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Thanks, Ian
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; netty-users mailing list
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3146755&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; ------------------------------------------------------------------------
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; netty-users mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3146755&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;netty-users mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3146755&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/New-Exception-with-CR1-preventing-a-full-shutdown-tp3143936p3146755.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3146487</id>
	<title>Re: New Exception with CR1 preventing a full shutdown</title>
	<published>2009-06-23T20:01:08Z</published>
	<updated>2009-06-23T20:01:08Z</updated>
	<author>
		<name>Trustin Lee</name>
	</author>
	<content type="html">It's revision 1494 actually. :)
&lt;br&gt;&lt;br&gt;On 2009-06-24 오전 11:55, &amp;quot;이희승 (Trustin Lee) wrote:
&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi Ian,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I've just checked in the fix at revision 1493. &amp;nbsp;Could you confirm that
&lt;br&gt;&amp;gt; my fix works for you?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; And here's the related JIRA issue:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; * &lt;a href=&quot;https://jira.jboss.org/jira/browse/NETTY-182&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/browse/NETTY-182&lt;/a&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thanks!
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; On 2009-06-24 오전 8:48, Ian Swett wrote:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I think the reason it is not exiting is actually my fault, because I'm blocking on LinkedBlockingQueue.take() forever in the last thread, and I believe the original error/stack trace is causing me not to get the response I'm expecting. &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Here is the jstack output:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Debugger attached successfully.
&lt;br&gt;&amp;gt;&amp;gt; Client compiler detected.
&lt;br&gt;&amp;gt;&amp;gt; JVM version is 1.5.0_19-137
&lt;br&gt;&amp;gt;&amp;gt; Deadlock Detection:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; No deadlocks found.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thread t@60931: (state = IN_NATIVE)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- sun.nio.ch.KQueueArrayWrapper.kevent0(int, long, int, long) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- sun.nio.ch.KQueueArrayWrapper.poll(long) @bci=12, line=136 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- sun.nio.ch.KQueueSelectorImpl.doSelect(long) @bci=46, line=69 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- sun.nio.ch.SelectorImpl.lockAndDoSelect(long) @bci=37, line=69 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- sun.nio.ch.SelectorImpl.select(long) @bci=30, line=80 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.jboss.netty.channel.socket.nio.NioWorker.run() @bci=60, line=165 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.jboss.netty.util.ThreadRenamingRunnable.run() @bci=55, line=110 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.jboss.netty.util.internal.IoWorkerRunnable.run() @bci=13, line=53 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.util.concurrent.ThreadPoolExecutor$Worker.runTask(java.lang.Runnable) @bci=43, line=651 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=28, line=676 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.lang.Thread.run() @bci=11, line=613 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thread t@64003: (state = IN_NATIVE)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- sun.nio.ch.KQueueArrayWrapper.kevent0(int, long, int, long) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- sun.nio.ch.KQueueArrayWrapper.poll(long) @bci=12, line=136 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- sun.nio.ch.KQueueSelectorImpl.doSelect(long) @bci=46, line=69 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- sun.nio.ch.SelectorImpl.lockAndDoSelect(long) @bci=37, line=69 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- sun.nio.ch.SelectorImpl.select(long) @bci=30, line=80 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- sun.nio.ch.ServerSocketAdaptor.accept() @bci=165, line=105 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink$Boss.run() @bci=10, line=215 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.jboss.netty.util.ThreadRenamingRunnable.run() @bci=55, line=110 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.jboss.netty.util.internal.IoWorkerRunnable.run() @bci=13, line=53 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.util.concurrent.ThreadPoolExecutor$Worker.runTask(java.lang.Runnable) @bci=43, line=651 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=28, line=676 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.lang.Thread.run() @bci=11, line=613 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thread t@66051: (state = BLOCKED)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.util.TimerThread.mainLoop() @bci=201, line=509 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.util.TimerThread.run() @bci=1, line=462 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thread t@66307: (state = IN_NATIVE)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.net.PlainSocketImpl.socketAccept(java.net.SocketImpl) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.net.PlainSocketImpl.accept(java.net.SocketImpl) @bci=7, line=384 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.net.ServerSocket.implAccept(java.net.Socket) @bci=50, line=450 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.net.ServerSocket.accept() @bci=48, line=421 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.mortbay.jetty.bio.SocketConnector.accept(int) @bci=4, line=99 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.mortbay.jetty.AbstractConnector$Acceptor.run() @bci=151, line=707 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.mortbay.thread.QueuedThreadPool$PoolThread.run() @bci=25, line=520 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thread t@66563: (state = BLOCKED)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.mortbay.thread.QueuedThreadPool$PoolThread.run() @bci=275, line=563 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thread t@66819: (state = IN_NATIVE)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.net.SocketInputStream.socketRead0(java.io.FileDescriptor, byte[], int, int, int) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.net.SocketInputStream.read(byte[], int, int) @bci=84, line=129 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- sun.nio.cs.StreamDecoder$CharsetSD.readBytes() @bci=130, line=411 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- sun.nio.cs.StreamDecoder$CharsetSD.implRead(char[], int, int) @bci=112, line=453 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- sun.nio.cs.StreamDecoder.read(char[], int, int) @bci=180, line=183 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.io.InputStreamReader.read(char[], int, int) @bci=7, line=167 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.io.BufferedReader.fill() @bci=145, line=136 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.io.BufferedReader.readLine(boolean) @bci=44, line=299 (Compiled frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.io.BufferedReader.readLine() @bci=2, line=362 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.eclipse.jdt.internal.junit.runner.RemoteTestRunner$ReaderThread.run() @bci=9, line=140 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thread t@68099: (state = BLOCKED)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thread t@68355: (state = BLOCKED)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.lang.ref.ReferenceQueue.remove(long) @bci=44, line=120 (Compiled frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.lang.ref.ReferenceQueue.remove() @bci=2, line=136 (Compiled frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.lang.ref.Finalizer$FinalizerThread.run() @bci=3, line=159 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thread t@68611: (state = BLOCKED)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.lang.Object.wait() @bci=2, line=474 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.lang.ref.Reference$ReferenceHandler.run() @bci=46, line=116 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thread t@68867: (state = BLOCKED)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- sun.misc.Unsafe.park(boolean, long) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.util.concurrent.locks.LockSupport.park() @bci=5, line=118 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await() @bci=41, line=1841 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- java.util.concurrent.LinkedBlockingQueue.take() @bci=29, line=359 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- com.appliedminds.mql.MQLServer.start() @bci=4, line=406 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- junit.framework.TestCase.runBare() @bci=3, line=128 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- junit.framework.TestResult$1.protect() @bci=4, line=106 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- junit.framework.TestResult.runProtected(junit.framework.Test, junit.framework.Protectable) @bci=1, line=124 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- junit.framework.TestResult.run(junit.framework.TestCase) @bci=18, line=109 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- junit.framework.TestCase.run(junit.framework.TestResult) @bci=2, line=120 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- junit.framework.TestSuite.runTest(junit.framework.Test, junit.framework.TestResult) @bci=2, line=230 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- junit.framework.TestSuite.run(junit.framework.TestResult) @bci=37, line=225 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(org.eclipse.jdt.internal.junit.runner.TestExecution) @bci=40, line=130 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.eclipse.jdt.internal.junit.runner.TestExecution.run(org.eclipse.jdt.internal.junit.runner.ITestReference[]) @bci=17, line=38 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(java.lang.String[], java.lang.String, org.eclipse.jdt.internal.junit.runner.TestExecution) @bci=61, line=460 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(org.eclipse.jdt.internal.junit.runner.TestExecution) @bci=10, line=673 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run() @bci=70, line=386 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;- org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(java.lang.String[]) @bci=14, line=196 (Interpreted frame)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ----- Original Message ----
&lt;br&gt;&amp;gt;&amp;gt; From: 이희승 (Trustin Lee) &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3146487&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;trustin@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; To: &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3146487&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; Sent: Tuesday, June 23, 2009 10:54:06 AM
&lt;br&gt;&amp;gt;&amp;gt; Subject: Re: New Exception with CR1 preventing a full shutdown
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Hi Ian,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thanks for reporting the problem. &amp;nbsp;This bug has been triggered by the
&lt;br&gt;&amp;gt;&amp;gt; side effect of AIX bug fix. &amp;nbsp;Could you post the full thread dump when it
&lt;br&gt;&amp;gt;&amp;gt; does not shut down? (i.e. two servers in one vm case)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; On 2009-06-24 오전 2:29, Ian Swett wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; I get the following exception at a point during startup. &amp;nbsp;The program runs properly after this exception, but when I got to shutdown, there are threads which don't get shutdown, so the JVM doesn't exit. &amp;nbsp;Sometimes I do not get this exception, and then everything goes smoothly. &amp;nbsp;I verified that when I switch back to Beta3, this problem never occurs. &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; I am running two Netty servers in the same JVM. &amp;nbsp;When I only run one, this exception still occurs, but the JVM shuts down cleanly.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Exception in thread &amp;quot;pool-1-thread-1&amp;quot; java.nio.channels.ClosedSelectorException
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:66)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at sun.nio.ch.SelectorImpl.selectNow(SelectorImpl.java:88)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at sun.nio.ch.Util.releaseTemporarySelector(Util.java:135)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at sun.nio.ch.ServerSocketAdaptor.accept(ServerSocketAdaptor.java:120)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink$Boss.run(NioServerSocketPipelineSink.java:215)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:110)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at org.jboss.netty.util.internal.IoWorkerRunnable.run(IoWorkerRunnable.java:53)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at java.lang.Thread.run(Thread.java:613)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; This is on MacOSX 10.5.7 with JDK 1.5.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Thanks, Ian
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; netty-users mailing list
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3146487&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; ------------------------------------------------------------------------
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; netty-users mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3146487&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt; &lt;br /&gt;_______________________________________________
&lt;br&gt;netty-users mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3146487&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;&lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://n2.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;signature.asc&lt;/strong&gt; (266 bytes) &lt;a href=&quot;http://n2.nabble.com/attachment/3146487/0/signature.asc&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;signature&quot;&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/New-Exception-with-CR1-preventing-a-full-shutdown-tp3143936p3146487.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3146470</id>
	<title>Re: New Exception with CR1 preventing a full shutdown</title>
	<published>2009-06-23T19:55:42Z</published>
	<updated>2009-06-23T19:55:42Z</updated>
	<author>
		<name>Trustin Lee</name>
	</author>
	<content type="html">Hi Ian,
&lt;br&gt;&lt;br&gt;I've just checked in the fix at revision 1493. &amp;nbsp;Could you confirm that
&lt;br&gt;my fix works for you?
&lt;br&gt;&lt;br&gt;And here's the related JIRA issue:
&lt;br&gt;&lt;br&gt;&amp;nbsp; * &lt;a href=&quot;https://jira.jboss.org/jira/browse/NETTY-182&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://jira.jboss.org/jira/browse/NETTY-182&lt;/a&gt;&lt;br&gt;&lt;br&gt;Thanks!
&lt;br&gt;&lt;br&gt;On 2009-06-24 오전 8:48, Ian Swett wrote:
&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I think the reason it is not exiting is actually my fault, because I'm blocking on LinkedBlockingQueue.take() forever in the last thread, and I believe the original error/stack trace is causing me not to get the response I'm expecting. &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Here is the jstack output:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Debugger attached successfully.
&lt;br&gt;&amp;gt; Client compiler detected.
&lt;br&gt;&amp;gt; JVM version is 1.5.0_19-137
&lt;br&gt;&amp;gt; Deadlock Detection:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; No deadlocks found.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thread t@60931: (state = IN_NATIVE)
&lt;br&gt;&amp;gt; &amp;nbsp;- sun.nio.ch.KQueueArrayWrapper.kevent0(int, long, int, long) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- sun.nio.ch.KQueueArrayWrapper.poll(long) @bci=12, line=136 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- sun.nio.ch.KQueueSelectorImpl.doSelect(long) @bci=46, line=69 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- sun.nio.ch.SelectorImpl.lockAndDoSelect(long) @bci=37, line=69 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- sun.nio.ch.SelectorImpl.select(long) @bci=30, line=80 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- org.jboss.netty.channel.socket.nio.NioWorker.run() @bci=60, line=165 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- org.jboss.netty.util.ThreadRenamingRunnable.run() @bci=55, line=110 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- org.jboss.netty.util.internal.IoWorkerRunnable.run() @bci=13, line=53 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- java.util.concurrent.ThreadPoolExecutor$Worker.runTask(java.lang.Runnable) @bci=43, line=651 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=28, line=676 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- java.lang.Thread.run() @bci=11, line=613 (Interpreted frame)
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thread t@64003: (state = IN_NATIVE)
&lt;br&gt;&amp;gt; &amp;nbsp;- sun.nio.ch.KQueueArrayWrapper.kevent0(int, long, int, long) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- sun.nio.ch.KQueueArrayWrapper.poll(long) @bci=12, line=136 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- sun.nio.ch.KQueueSelectorImpl.doSelect(long) @bci=46, line=69 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- sun.nio.ch.SelectorImpl.lockAndDoSelect(long) @bci=37, line=69 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- sun.nio.ch.SelectorImpl.select(long) @bci=30, line=80 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- sun.nio.ch.ServerSocketAdaptor.accept() @bci=165, line=105 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink$Boss.run() @bci=10, line=215 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- org.jboss.netty.util.ThreadRenamingRunnable.run() @bci=55, line=110 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- org.jboss.netty.util.internal.IoWorkerRunnable.run() @bci=13, line=53 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- java.util.concurrent.ThreadPoolExecutor$Worker.runTask(java.lang.Runnable) @bci=43, line=651 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=28, line=676 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- java.lang.Thread.run() @bci=11, line=613 (Interpreted frame)
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thread t@66051: (state = BLOCKED)
&lt;br&gt;&amp;gt; &amp;nbsp;- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- java.util.TimerThread.mainLoop() @bci=201, line=509 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- java.util.TimerThread.run() @bci=1, line=462 (Interpreted frame)
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thread t@66307: (state = IN_NATIVE)
&lt;br&gt;&amp;gt; &amp;nbsp;- java.net.PlainSocketImpl.socketAccept(java.net.SocketImpl) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- java.net.PlainSocketImpl.accept(java.net.SocketImpl) @bci=7, line=384 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- java.net.ServerSocket.implAccept(java.net.Socket) @bci=50, line=450 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- java.net.ServerSocket.accept() @bci=48, line=421 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- org.mortbay.jetty.bio.SocketConnector.accept(int) @bci=4, line=99 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- org.mortbay.jetty.AbstractConnector$Acceptor.run() @bci=151, line=707 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- org.mortbay.thread.QueuedThreadPool$PoolThread.run() @bci=25, line=520 (Interpreted frame)
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thread t@66563: (state = BLOCKED)
&lt;br&gt;&amp;gt; &amp;nbsp;- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- org.mortbay.thread.QueuedThreadPool$PoolThread.run() @bci=275, line=563 (Interpreted frame)
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thread t@66819: (state = IN_NATIVE)
&lt;br&gt;&amp;gt; &amp;nbsp;- java.net.SocketInputStream.socketRead0(java.io.FileDescriptor, byte[], int, int, int) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- java.net.SocketInputStream.read(byte[], int, int) @bci=84, line=129 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- sun.nio.cs.StreamDecoder$CharsetSD.readBytes() @bci=130, line=411 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- sun.nio.cs.StreamDecoder$CharsetSD.implRead(char[], int, int) @bci=112, line=453 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- sun.nio.cs.StreamDecoder.read(char[], int, int) @bci=180, line=183 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- java.io.InputStreamReader.read(char[], int, int) @bci=7, line=167 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- java.io.BufferedReader.fill() @bci=145, line=136 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- java.io.BufferedReader.readLine(boolean) @bci=44, line=299 (Compiled frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- java.io.BufferedReader.readLine() @bci=2, line=362 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- org.eclipse.jdt.internal.junit.runner.RemoteTestRunner$ReaderThread.run() @bci=9, line=140 (Interpreted frame)
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thread t@68099: (state = BLOCKED)
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thread t@68355: (state = BLOCKED)
&lt;br&gt;&amp;gt; &amp;nbsp;- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- java.lang.ref.ReferenceQueue.remove(long) @bci=44, line=120 (Compiled frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- java.lang.ref.ReferenceQueue.remove() @bci=2, line=136 (Compiled frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- java.lang.ref.Finalizer$FinalizerThread.run() @bci=3, line=159 (Interpreted frame)
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thread t@68611: (state = BLOCKED)
&lt;br&gt;&amp;gt; &amp;nbsp;- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- java.lang.Object.wait() @bci=2, line=474 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- java.lang.ref.Reference$ReferenceHandler.run() @bci=46, line=116 (Interpreted frame)
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thread t@68867: (state = BLOCKED)
&lt;br&gt;&amp;gt; &amp;nbsp;- sun.misc.Unsafe.park(boolean, long) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- java.util.concurrent.locks.LockSupport.park() @bci=5, line=118 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await() @bci=41, line=1841 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- java.util.concurrent.LinkedBlockingQueue.take() @bci=29, line=359 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- com.appliedminds.mql.MQLServer.start() @bci=4, line=406 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- junit.framework.TestCase.runBare() @bci=3, line=128 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- junit.framework.TestResult$1.protect() @bci=4, line=106 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- junit.framework.TestResult.runProtected(junit.framework.Test, junit.framework.Protectable) @bci=1, line=124 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- junit.framework.TestResult.run(junit.framework.TestCase) @bci=18, line=109 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- junit.framework.TestCase.run(junit.framework.TestResult) @bci=2, line=120 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- junit.framework.TestSuite.runTest(junit.framework.Test, junit.framework.TestResult) @bci=2, line=230 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- junit.framework.TestSuite.run(junit.framework.TestResult) @bci=37, line=225 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(org.eclipse.jdt.internal.junit.runner.TestExecution) @bci=40, line=130 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- org.eclipse.jdt.internal.junit.runner.TestExecution.run(org.eclipse.jdt.internal.junit.runner.ITestReference[]) @bci=17, line=38 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(java.lang.String[], java.lang.String, org.eclipse.jdt.internal.junit.runner.TestExecution) @bci=61, line=460 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(org.eclipse.jdt.internal.junit.runner.TestExecution) @bci=10, line=673 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run() @bci=70, line=386 (Interpreted frame)
&lt;br&gt;&amp;gt; &amp;nbsp;- org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(java.lang.String[]) @bci=14, line=196 (Interpreted frame)
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; ----- Original Message ----
&lt;br&gt;&amp;gt; From: 이희승 (Trustin Lee) &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3146470&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;trustin@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; To: &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3146470&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&amp;gt; Sent: Tuesday, June 23, 2009 10:54:06 AM
&lt;br&gt;&amp;gt; Subject: Re: New Exception with CR1 preventing a full shutdown
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Hi Ian,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thanks for reporting the problem. &amp;nbsp;This bug has been triggered by the
&lt;br&gt;&amp;gt; side effect of AIX bug fix. &amp;nbsp;Could you post the full thread dump when it
&lt;br&gt;&amp;gt; does not shut down? (i.e. two servers in one vm case)
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; On 2009-06-24 오전 2:29, Ian Swett wrote:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I get the following exception at a point during startup. &amp;nbsp;The program runs properly after this exception, but when I got to shutdown, there are threads which don't get shutdown, so the JVM doesn't exit. &amp;nbsp;Sometimes I do not get this exception, and then everything goes smoothly. &amp;nbsp;I verified that when I switch back to Beta3, this problem never occurs. &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I am running two Netty servers in the same JVM. &amp;nbsp;When I only run one, this exception still occurs, but the JVM shuts down cleanly.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Exception in thread &amp;quot;pool-1-thread-1&amp;quot; java.nio.channels.ClosedSelectorException
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:66)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at sun.nio.ch.SelectorImpl.selectNow(SelectorImpl.java:88)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at sun.nio.ch.Util.releaseTemporarySelector(Util.java:135)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at sun.nio.ch.ServerSocketAdaptor.accept(ServerSocketAdaptor.java:120)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink$Boss.run(NioServerSocketPipelineSink.java:215)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:110)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at org.jboss.netty.util.internal.IoWorkerRunnable.run(IoWorkerRunnable.java:53)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at java.lang.Thread.run(Thread.java:613)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; This is on MacOSX 10.5.7 with JDK 1.5.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thanks, Ian
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt;&amp;gt; netty-users mailing list
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3146470&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt; &lt;br /&gt;_______________________________________________
&lt;br&gt;netty-users mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3146470&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;&lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://n2.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;signature.asc&lt;/strong&gt; (266 bytes) &lt;a href=&quot;http://n2.nabble.com/attachment/3146470/0/signature.asc&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;signature&quot;&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/New-Exception-with-CR1-preventing-a-full-shutdown-tp3143936p3146470.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3145857</id>
	<title>Re: New Exception with CR1 preventing a full shutdown</title>
	<published>2009-06-23T16:48:18Z</published>
	<updated>2009-06-23T16:48:18Z</updated>
	<author>
		<name>IanS</name>
	</author>
	<content type="html">&lt;br&gt;I think the reason it is not exiting is actually my fault, because I'm blocking on LinkedBlockingQueue.take() forever in the last thread, and I believe the original error/stack trace is causing me not to get the response I'm expecting. &amp;nbsp;
&lt;br&gt;&lt;br&gt;Here is the jstack output:
&lt;br&gt;&lt;br&gt;Debugger attached successfully.
&lt;br&gt;Client compiler detected.
&lt;br&gt;JVM version is 1.5.0_19-137
&lt;br&gt;Deadlock Detection:
&lt;br&gt;&lt;br&gt;No deadlocks found.
&lt;br&gt;&lt;br&gt;Thread t@60931: (state = IN_NATIVE)
&lt;br&gt;&amp;nbsp;- sun.nio.ch.KQueueArrayWrapper.kevent0(int, long, int, long) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- sun.nio.ch.KQueueArrayWrapper.poll(long) @bci=12, line=136 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- sun.nio.ch.KQueueSelectorImpl.doSelect(long) @bci=46, line=69 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- sun.nio.ch.SelectorImpl.lockAndDoSelect(long) @bci=37, line=69 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- sun.nio.ch.SelectorImpl.select(long) @bci=30, line=80 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- org.jboss.netty.channel.socket.nio.NioWorker.run() @bci=60, line=165 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- org.jboss.netty.util.ThreadRenamingRunnable.run() @bci=55, line=110 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- org.jboss.netty.util.internal.IoWorkerRunnable.run() @bci=13, line=53 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- java.util.concurrent.ThreadPoolExecutor$Worker.runTask(java.lang.Runnable) @bci=43, line=651 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=28, line=676 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- java.lang.Thread.run() @bci=11, line=613 (Interpreted frame)
&lt;br&gt;&lt;br&gt;&lt;br&gt;Thread t@64003: (state = IN_NATIVE)
&lt;br&gt;&amp;nbsp;- sun.nio.ch.KQueueArrayWrapper.kevent0(int, long, int, long) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- sun.nio.ch.KQueueArrayWrapper.poll(long) @bci=12, line=136 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- sun.nio.ch.KQueueSelectorImpl.doSelect(long) @bci=46, line=69 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- sun.nio.ch.SelectorImpl.lockAndDoSelect(long) @bci=37, line=69 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- sun.nio.ch.SelectorImpl.select(long) @bci=30, line=80 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- sun.nio.ch.ServerSocketAdaptor.accept() @bci=165, line=105 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink$Boss.run() @bci=10, line=215 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- org.jboss.netty.util.ThreadRenamingRunnable.run() @bci=55, line=110 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- org.jboss.netty.util.internal.IoWorkerRunnable.run() @bci=13, line=53 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- java.util.concurrent.ThreadPoolExecutor$Worker.runTask(java.lang.Runnable) @bci=43, line=651 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=28, line=676 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- java.lang.Thread.run() @bci=11, line=613 (Interpreted frame)
&lt;br&gt;&lt;br&gt;&lt;br&gt;Thread t@66051: (state = BLOCKED)
&lt;br&gt;&amp;nbsp;- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- java.util.TimerThread.mainLoop() @bci=201, line=509 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- java.util.TimerThread.run() @bci=1, line=462 (Interpreted frame)
&lt;br&gt;&lt;br&gt;&lt;br&gt;Thread t@66307: (state = IN_NATIVE)
&lt;br&gt;&amp;nbsp;- java.net.PlainSocketImpl.socketAccept(java.net.SocketImpl) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- java.net.PlainSocketImpl.accept(java.net.SocketImpl) @bci=7, line=384 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- java.net.ServerSocket.implAccept(java.net.Socket) @bci=50, line=450 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- java.net.ServerSocket.accept() @bci=48, line=421 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- org.mortbay.jetty.bio.SocketConnector.accept(int) @bci=4, line=99 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- org.mortbay.jetty.AbstractConnector$Acceptor.run() @bci=151, line=707 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- org.mortbay.thread.QueuedThreadPool$PoolThread.run() @bci=25, line=520 (Interpreted frame)
&lt;br&gt;&lt;br&gt;&lt;br&gt;Thread t@66563: (state = BLOCKED)
&lt;br&gt;&amp;nbsp;- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- org.mortbay.thread.QueuedThreadPool$PoolThread.run() @bci=275, line=563 (Interpreted frame)
&lt;br&gt;&lt;br&gt;&lt;br&gt;Thread t@66819: (state = IN_NATIVE)
&lt;br&gt;&amp;nbsp;- java.net.SocketInputStream.socketRead0(java.io.FileDescriptor, byte[], int, int, int) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- java.net.SocketInputStream.read(byte[], int, int) @bci=84, line=129 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- sun.nio.cs.StreamDecoder$CharsetSD.readBytes() @bci=130, line=411 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- sun.nio.cs.StreamDecoder$CharsetSD.implRead(char[], int, int) @bci=112, line=453 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- sun.nio.cs.StreamDecoder.read(char[], int, int) @bci=180, line=183 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- java.io.InputStreamReader.read(char[], int, int) @bci=7, line=167 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- java.io.BufferedReader.fill() @bci=145, line=136 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- java.io.BufferedReader.readLine(boolean) @bci=44, line=299 (Compiled frame)
&lt;br&gt;&amp;nbsp;- java.io.BufferedReader.readLine() @bci=2, line=362 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- org.eclipse.jdt.internal.junit.runner.RemoteTestRunner$ReaderThread.run() @bci=9, line=140 (Interpreted frame)
&lt;br&gt;&lt;br&gt;&lt;br&gt;Thread t@68099: (state = BLOCKED)
&lt;br&gt;&lt;br&gt;&lt;br&gt;Thread t@68355: (state = BLOCKED)
&lt;br&gt;&amp;nbsp;- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- java.lang.ref.ReferenceQueue.remove(long) @bci=44, line=120 (Compiled frame)
&lt;br&gt;&amp;nbsp;- java.lang.ref.ReferenceQueue.remove() @bci=2, line=136 (Compiled frame)
&lt;br&gt;&amp;nbsp;- java.lang.ref.Finalizer$FinalizerThread.run() @bci=3, line=159 (Interpreted frame)
&lt;br&gt;&lt;br&gt;&lt;br&gt;Thread t@68611: (state = BLOCKED)
&lt;br&gt;&amp;nbsp;- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- java.lang.Object.wait() @bci=2, line=474 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- java.lang.ref.Reference$ReferenceHandler.run() @bci=46, line=116 (Interpreted frame)
&lt;br&gt;&lt;br&gt;&lt;br&gt;Thread t@68867: (state = BLOCKED)
&lt;br&gt;&amp;nbsp;- sun.misc.Unsafe.park(boolean, long) @bci=0 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- java.util.concurrent.locks.LockSupport.park() @bci=5, line=118 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await() @bci=41, line=1841 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- java.util.concurrent.LinkedBlockingQueue.take() @bci=29, line=359 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- com.appliedminds.mql.MQLServer.start() @bci=4, line=406 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- junit.framework.TestCase.runBare() @bci=3, line=128 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- junit.framework.TestResult$1.protect() @bci=4, line=106 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- junit.framework.TestResult.runProtected(junit.framework.Test, junit.framework.Protectable) @bci=1, line=124 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- junit.framework.TestResult.run(junit.framework.TestCase) @bci=18, line=109 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- junit.framework.TestCase.run(junit.framework.TestResult) @bci=2, line=120 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- junit.framework.TestSuite.runTest(junit.framework.Test, junit.framework.TestResult) @bci=2, line=230 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- junit.framework.TestSuite.run(junit.framework.TestResult) @bci=37, line=225 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(org.eclipse.jdt.internal.junit.runner.TestExecution) @bci=40, line=130 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- org.eclipse.jdt.internal.junit.runner.TestExecution.run(org.eclipse.jdt.internal.junit.runner.ITestReference[]) @bci=17, line=38 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(java.lang.String[], java.lang.String, org.eclipse.jdt.internal.junit.runner.TestExecution) @bci=61, line=460 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(org.eclipse.jdt.internal.junit.runner.TestExecution) @bci=10, line=673 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run() @bci=70, line=386 (Interpreted frame)
&lt;br&gt;&amp;nbsp;- org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(java.lang.String[]) @bci=14, line=196 (Interpreted frame)
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;----- Original Message ----
&lt;br&gt;From: 이희승 (Trustin Lee) &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3145857&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;trustin@...&lt;/a&gt;&amp;gt;
&lt;br&gt;To: &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3145857&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;Sent: Tuesday, June 23, 2009 10:54:06 AM
&lt;br&gt;Subject: Re: New Exception with CR1 preventing a full shutdown
&lt;br&gt;&lt;br&gt;Hi Ian,
&lt;br&gt;&lt;br&gt;Thanks for reporting the problem. &amp;nbsp;This bug has been triggered by the
&lt;br&gt;side effect of AIX bug fix. &amp;nbsp;Could you post the full thread dump when it
&lt;br&gt;does not shut down? (i.e. two servers in one vm case)
&lt;br&gt;&lt;br&gt;&lt;br&gt;On 2009-06-24 오전 2:29, Ian Swett wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I get the following exception at a point during startup. &amp;nbsp;The program runs properly after this exception, but when I got to shutdown, there are threads which don't get shutdown, so the JVM doesn't exit. &amp;nbsp;Sometimes I do not get this exception, and then everything goes smoothly. &amp;nbsp;I verified that when I switch back to Beta3, this problem never occurs. &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I am running two Netty servers in the same JVM. &amp;nbsp;When I only run one, this exception still occurs, but the JVM shuts down cleanly.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Exception in thread &amp;quot;pool-1-thread-1&amp;quot; java.nio.channels.ClosedSelectorException
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:66)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at sun.nio.ch.SelectorImpl.selectNow(SelectorImpl.java:88)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at sun.nio.ch.Util.releaseTemporarySelector(Util.java:135)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at sun.nio.ch.ServerSocketAdaptor.accept(ServerSocketAdaptor.java:120)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink$Boss.run(NioServerSocketPipelineSink.java:215)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:110)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at org.jboss.netty.util.internal.IoWorkerRunnable.run(IoWorkerRunnable.java:53)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at java.lang.Thread.run(Thread.java:613)
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; This is on MacOSX 10.5.7 with JDK 1.5.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thanks, Ian
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; netty-users mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3145857&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;netty-users mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3145857&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/New-Exception-with-CR1-preventing-a-full-shutdown-tp3143936p3145857.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3144108</id>
	<title>Re: New Exception with CR1 preventing a full shutdown</title>
	<published>2009-06-23T10:54:06Z</published>
	<updated>2009-06-23T10:54:06Z</updated>
	<author>
		<name>Trustin Lee</name>
	</author>
	<content type="html">Hi Ian,
&lt;br&gt;&lt;br&gt;Thanks for reporting the problem. &amp;nbsp;This bug has been triggered by the
&lt;br&gt;side effect of AIX bug fix. &amp;nbsp;Could you post the full thread dump when it
&lt;br&gt;does not shut down? (i.e. two servers in one vm case)
&lt;br&gt;&lt;br&gt;&lt;br&gt;On 2009-06-24 오전 2:29, Ian Swett wrote:
&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I get the following exception at a point during startup. &amp;nbsp;The program runs properly after this exception, but when I got to shutdown, there are threads which don't get shutdown, so the JVM doesn't exit. &amp;nbsp;Sometimes I do not get this exception, and then everything goes smoothly. &amp;nbsp;I verified that when I switch back to Beta3, this problem never occurs. &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I am running two Netty servers in the same JVM. &amp;nbsp;When I only run one, this exception still occurs, but the JVM shuts down cleanly.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Exception in thread &amp;quot;pool-1-thread-1&amp;quot; java.nio.channels.ClosedSelectorException
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:66)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at sun.nio.ch.SelectorImpl.selectNow(SelectorImpl.java:88)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at sun.nio.ch.Util.releaseTemporarySelector(Util.java:135)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at sun.nio.ch.ServerSocketAdaptor.accept(ServerSocketAdaptor.java:120)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink$Boss.run(NioServerSocketPipelineSink.java:215)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:110)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at org.jboss.netty.util.internal.IoWorkerRunnable.run(IoWorkerRunnable.java:53)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at java.lang.Thread.run(Thread.java:613)
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; This is on MacOSX 10.5.7 with JDK 1.5.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thanks, Ian
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; netty-users mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3144108&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt; &lt;br /&gt;_______________________________________________
&lt;br&gt;netty-users mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3144108&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;&lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://n2.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;signature.asc&lt;/strong&gt; (266 bytes) &lt;a href=&quot;http://n2.nabble.com/attachment/3144108/0/signature.asc&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;signature&quot;&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/New-Exception-with-CR1-preventing-a-full-shutdown-tp3143936p3144108.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3143936</id>
	<title>New Exception with CR1 preventing a full shutdown</title>
	<published>2009-06-23T10:29:14Z</published>
	<updated>2009-06-23T10:29:14Z</updated>
	<author>
		<name>IanS</name>
	</author>
	<content type="html">&lt;br&gt;I get the following exception at a point during startup. &amp;nbsp;The program runs properly after this exception, but when I got to shutdown, there are threads which don't get shutdown, so the JVM doesn't exit. &amp;nbsp;Sometimes I do not get this exception, and then everything goes smoothly. &amp;nbsp;I verified that when I switch back to Beta3, this problem never occurs. &amp;nbsp;
&lt;br&gt;&lt;br&gt;I am running two Netty servers in the same JVM. &amp;nbsp;When I only run one, this exception still occurs, but the JVM shuts down cleanly.
&lt;br&gt;&lt;br&gt;Exception in thread &amp;quot;pool-1-thread-1&amp;quot; java.nio.channels.ClosedSelectorException
&lt;br&gt;&amp;nbsp; &amp;nbsp; at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:66)
&lt;br&gt;&amp;nbsp; &amp;nbsp; at sun.nio.ch.SelectorImpl.selectNow(SelectorImpl.java:88)
&lt;br&gt;&amp;nbsp; &amp;nbsp; at sun.nio.ch.Util.releaseTemporarySelector(Util.java:135)
&lt;br&gt;&amp;nbsp; &amp;nbsp; at sun.nio.ch.ServerSocketAdaptor.accept(ServerSocketAdaptor.java:120)
&lt;br&gt;&amp;nbsp; &amp;nbsp; at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink$Boss.run(NioServerSocketPipelineSink.java:215)
&lt;br&gt;&amp;nbsp; &amp;nbsp; at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:110)
&lt;br&gt;&amp;nbsp; &amp;nbsp; at org.jboss.netty.util.internal.IoWorkerRunnable.run(IoWorkerRunnable.java:53)
&lt;br&gt;&amp;nbsp; &amp;nbsp; at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651)
&lt;br&gt;&amp;nbsp; &amp;nbsp; at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676)
&lt;br&gt;&amp;nbsp; &amp;nbsp; at java.lang.Thread.run(Thread.java:613)
&lt;br&gt;&lt;br&gt;This is on MacOSX 10.5.7 with JDK 1.5.
&lt;br&gt;&lt;br&gt;Thanks, Ian
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;_______________________________________________
&lt;br&gt;netty-users mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3143936&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/New-Exception-with-CR1-preventing-a-full-shutdown-tp3143936p3143936.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3154411</id>
	<title>Re: Recommendations</title>
	<published>2009-06-25T04:11:47Z</published>
	<updated>2009-06-25T04:11:47Z</updated>
	<author>
		<name>Trustin Lee</name>
	</author>
	<content type="html">Hi David,
&lt;br&gt;&lt;br&gt;I would rather define a set of message types and write more strictly
&lt;br&gt;typed decoder and encoder, just like I did for HTTP. &amp;nbsp;The decoder will
&lt;br&gt;be somewhat complicated, but it worths time and complexity because your
&lt;br&gt;final handler will look simple and beautiful thanks to separation of
&lt;br&gt;concerns. &amp;nbsp;I'd recommend you to give ReplayingDecoder a try. &amp;nbsp;HTTP
&lt;br&gt;decoder was implemented much sooner than I expected thanks to
&lt;br&gt;ReplayingDecoder.
&lt;br&gt;&lt;br&gt;HTH,
&lt;br&gt;Trustin
&lt;br&gt;&lt;br&gt;On 2009-06-24 오전 1:56, David Hoyt wrote:
&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; I’m still familiarizing myself w/ the netty API. I love what I see and I
&lt;br&gt;&amp;gt; have all the basics down and have implemented a custom, binary protocol
&lt;br&gt;&amp;gt; – but now it comes down to knowing the available classes. How would you
&lt;br&gt;&amp;gt; recommend implementing a protocol such as POP? Here’s an example POP3
&lt;br&gt;&amp;gt; session:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://coewww.rutgers.edu/www1/linuxclass2005/lessons/lesson12/sec_6.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://coewww.rutgers.edu/www1/linuxclass2005/lessons/lesson12/sec_6.html&lt;/a&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Are there any classes that would allow me to react on a line-by-line
&lt;br&gt;&amp;gt; basis + maintain state b/t messages? I know I’ll need a string
&lt;br&gt;&amp;gt; decoder/encoder and then I could parse out the messages myself – but if
&lt;br&gt;&amp;gt; there’s already something out there I could use, that’d be great.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thanks!
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; ------------------------------------------------------------------------
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; netty-users mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3154411&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt; &lt;br /&gt;_______________________________________________
&lt;br&gt;netty-users mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3154411&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;&lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://n2.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;signature.asc&lt;/strong&gt; (267 bytes) &lt;a href=&quot;http://n2.nabble.com/attachment/3154411/0/signature.asc&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;signature&quot;&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/Recommendations-tp3143717p3154411.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3143717</id>
	<title>Recommendations</title>
	<published>2009-06-23T09:56:01Z</published>
	<updated>2009-06-23T09:56:01Z</updated>
	<author>
		<name>David Hoyt</name>
	</author>
	<content type="html">


&lt;meta http-equiv=Content-Type content=&quot;text/html; charset=us-ascii&quot;&gt;
&lt;meta name=Generator content=&quot;Microsoft Word 12 (filtered medium)&quot;&gt;

&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:shapedefaults v:ext=&quot;edit&quot; spidmax=&quot;1026&quot; /&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:shapelayout v:ext=&quot;edit&quot;&gt;
  &lt;o:idmap v:ext=&quot;edit&quot; data=&quot;1&quot; /&gt;
 &lt;/o:shapelayout&gt;&lt;/xml&gt;&lt;![endif]--&gt;




&lt;div class=Section1&gt;

&lt;p class=MsoNormal&gt;I&amp;#8217;m still familiarizing myself w/ the netty API. I love
what I see and I have all the basics down and have implemented a custom, binary
protocol &amp;#8211; but now it comes down to knowing the available classes. How
would you recommend implementing a protocol such as POP? Here&amp;#8217;s an
example POP3 session: &lt;a href=&quot;http://coewww.rutgers.edu/www1/linuxclass2005/lessons/lesson12/sec_6.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://coewww.rutgers.edu/www1/linuxclass2005/lessons/lesson12/sec_6.html&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
Are there any classes that would allow me to react on a line-by-line basis +
maintain state b/t messages? I know I&amp;#8217;ll need a string decoder/encoder
and then I could parse out the messages myself &amp;#8211; but if there&amp;#8217;s already
something out there I could use, that&amp;#8217;d be great.&lt;br&gt;
&lt;br&gt;
Thanks!&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;




&lt;br /&gt;_______________________________________________
&lt;br&gt;netty-users mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3143717&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/Recommendations-tp3143717p3143717.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3141042</id>
	<title>Re: ObjectEncoder Decoder fails with Object containing Object[]</title>
	<published>2009-06-23T01:09:32Z</published>
	<updated>2009-06-23T01:09:32Z</updated>
	<author>
		<name>neilson9</name>
	</author>
	<content type="html">No, Im using 3.1Beta3 - I will try CR1 and confirm. I did see the byte[] posting but wasnt sure if it was the same issue. Thanks for the quick reply
&lt;br&gt;Cheers Neil.</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/ObjectEncoder-Decoder-fails-with-Object-containing-Object---tp3140774p3141042.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3140935</id>
	<title>Re: ObjectEncoder Decoder fails with Object containing Object</title>
	<published>2009-06-23T00:41:01Z</published>
	<updated>2009-06-23T00:41:01Z</updated>
	<author>
		<name>Trustin Lee</name>
	</author>
	<content type="html">Hi Neil,
&lt;br&gt;&lt;br&gt;The reported issue has been fixed already in 3.1.0.CR1. &amp;nbsp;Are you using
&lt;br&gt;3.1.0.CR1?
&lt;br&gt;&lt;br&gt;HTH,
&lt;br&gt;Trustin
&lt;br&gt;&lt;br&gt;On 2009-06-23 오후 3:56, neilson9 wrote:
&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Hi All,
&lt;br&gt;&amp;gt; Firstly, thankyou for developing this framework - Ive have used quite a few
&lt;br&gt;&amp;gt; in the past and netty is easy to use, has a great API and extremely fast!
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I have 2 questions,
&lt;br&gt;&amp;gt; 1) Does an Object passes using the ObjectEncoder/Decoder have to implement
&lt;br&gt;&amp;gt; Serializable? - is there a switch to disable the check?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 2) Ive just been looking at passing through messages using the
&lt;br&gt;&amp;gt; ObjectDecoder, ObjectEncoder and have found that if any message contains an
&lt;br&gt;&amp;gt; field Object[] i.e. below. Is there something Im missing ? Im trying to
&lt;br&gt;&amp;gt; proxy a data payload to the server without having to use other forms of
&lt;br&gt;&amp;gt; serialization.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; class MyClass {
&lt;br&gt;&amp;gt; Object[] stuff 
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; then it fails with the following message.
&lt;br&gt;&amp;gt; java.io.InvalidClassException: failed to read class descriptor
&lt;br&gt;&amp;gt; 	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1567)
&lt;br&gt;&amp;gt; 	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
&lt;br&gt;&amp;gt; 	at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1624)
&lt;br&gt;&amp;gt; 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
&lt;br&gt;&amp;gt; 	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
&lt;br&gt;&amp;gt; 	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
&lt;br&gt;&amp;gt; 	at
&lt;br&gt;&amp;gt; java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
&lt;br&gt;&amp;gt; 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
&lt;br&gt;&amp;gt; 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
&lt;br&gt;&amp;gt; 	at
&lt;br&gt;&amp;gt; org.jboss.netty.handler.codec.serialization.ObjectDecoder.decode(ObjectDecoder.java:117)
&lt;br&gt;&amp;gt; 	at
&lt;br&gt;&amp;gt; org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:244)
&lt;br&gt;&amp;gt; 	at
&lt;br&gt;&amp;gt; org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:184)
&lt;br&gt;&amp;gt; 	at
&lt;br&gt;&amp;gt; org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:87)
&lt;br&gt;&amp;gt; 	at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:344)
&lt;br&gt;&amp;gt; 	at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:331)
&lt;br&gt;&amp;gt; 	at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:303)
&lt;br&gt;&amp;gt; 	at
&lt;br&gt;&amp;gt; org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:255)
&lt;br&gt;&amp;gt; 	at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:176)
&lt;br&gt;&amp;gt; 	at
&lt;br&gt;&amp;gt; org.jboss.netty.util.internal.IoWorkerRunnable.run(IoWorkerRunnable.java:49)
&lt;br&gt;&amp;gt; 	at
&lt;br&gt;&amp;gt; java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
&lt;br&gt;&amp;gt; 	at
&lt;br&gt;&amp;gt; java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
&lt;br&gt;&amp;gt; 	at java.lang.Thread.run(Thread.java:637)
&lt;br&gt;&amp;gt; Caused by: java.lang.ClassNotFoundException: [Ljava.lang.Object;
&lt;br&gt;&amp;gt; 	at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
&lt;br&gt;&amp;gt; 	at java.security.AccessController.doPrivileged(Native Method)
&lt;br&gt;&amp;gt; 	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
&lt;br&gt;&amp;gt; 	at java.lang.ClassLoader.loadClass(ClassLoader.java:319)
&lt;br&gt;&amp;gt; 	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:330)
&lt;br&gt;&amp;gt; 	at java.lang.ClassLoader.loadClass(ClassLoader.java:254)
&lt;br&gt;&amp;gt; 	at
&lt;br&gt;&amp;gt; org.jboss.netty.handler.codec.serialization.CompactObjectInputStream.loadClass(CompactObjectInputStream.java:100)
&lt;br&gt;&amp;gt; 	at
&lt;br&gt;&amp;gt; org.jboss.netty.handler.codec.serialization.CompactObjectInputStream.readClassDescriptor(CompactObjectInputStream.java:74)
&lt;br&gt;&amp;gt; 	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1565)
&lt;br&gt;&amp;gt; 	... 21 more
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Many Thanks,
&lt;br&gt;&amp;gt; -Neil.
&lt;/div&gt;&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt; &lt;br /&gt;_______________________________________________
&lt;br&gt;netty-users mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3140935&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;&lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://n2.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;signature.asc&lt;/strong&gt; (266 bytes) &lt;a href=&quot;http://n2.nabble.com/attachment/3140935/0/signature.asc&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;signature&quot;&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/ObjectEncoder-Decoder-fails-with-Object-containing-Object---tp3140774p3140935.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3140774</id>
	<title>ObjectEncoder Decoder fails with Object containing Object[]</title>
	<published>2009-06-22T23:56:38Z</published>
	<updated>2009-06-22T23:56:38Z</updated>
	<author>
		<name>neilson9</name>
	</author>
	<content type="html">Hi All,
&lt;br&gt;Firstly, thankyou for developing this framework - Ive have used quite a few in the past and netty is easy to use, has a great API and extremely fast!
&lt;br&gt;&lt;br&gt;&lt;br&gt;I have 2 questions,
&lt;br&gt;1) Does an Object passed using the ObjectEncoder/Decoder have to implement Serializable? - is there a switch to disable the check?
&lt;br&gt;&lt;br&gt;2) Ive just been looking at passing through messages using the ObjectDecoder, ObjectEncoder and have found that if any message contains an field Object[] i.e. below. Is there something Im missing ? Im trying to proxy a data payload to the server without having to use other forms of serialization.
&lt;br&gt;&lt;br&gt;btw - Im using Netty 3.1.0Beta3
&lt;br&gt;&lt;br&gt;class MyClass {
&lt;br&gt;Object[] stuff 
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;then it fails with the following message.
&lt;br&gt;java.io.InvalidClassException: failed to read class descriptor
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1567)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1624)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.jboss.netty.handler.codec.serialization.ObjectDecoder.decode(ObjectDecoder.java:117)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:244)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:184)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:87)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:344)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:331)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:303)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:255)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:176)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.jboss.netty.util.internal.IoWorkerRunnable.run(IoWorkerRunnable.java:49)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.lang.Thread.run(Thread.java:637)
&lt;br&gt;Caused by: java.lang.ClassNotFoundException: [Ljava.lang.Object;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.security.AccessController.doPrivileged(Native Method)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.lang.ClassLoader.loadClass(ClassLoader.java:319)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:330)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.lang.ClassLoader.loadClass(ClassLoader.java:254)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.jboss.netty.handler.codec.serialization.CompactObjectInputStream.loadClass(CompactObjectInputStream.java:100)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.jboss.netty.handler.codec.serialization.CompactObjectInputStream.readClassDescriptor(CompactObjectInputStream.java:74)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1565)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ... 21 more
&lt;br&gt;&lt;br&gt;&lt;br&gt;Many Thanks,
&lt;br&gt;-Neil.</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/ObjectEncoder-Decoder-fails-with-Object-containing-Object---tp3140774p3140774.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3140325</id>
	<title>Netty 3.1.0.CR1 released: Large Data Streaming, HTTP Performance, and Javadoc</title>
	<published>2009-06-22T19:20:39Z</published>
	<updated>2009-06-22T19:20:39Z</updated>
	<author>
		<name>Trustin Lee</name>
	</author>
	<content type="html">Hi community,
&lt;br&gt;&lt;br&gt;Netty 3.1.0.CR1, the first release candidate of 3.1 branch, has been
&lt;br&gt;released.
&lt;br&gt;&lt;br&gt;The Netty project is an effort to provide an asynchronous, event-driven
&lt;br&gt;network application framework and tools for rapid development of
&lt;br&gt;maintainable, high-performance, high-scalability protocol servers and
&lt;br&gt;clients.
&lt;br&gt;&lt;br&gt;In other words, Netty is a NIO client server framework that enables
&lt;br&gt;quick and easy development of network applications such as protocol
&lt;br&gt;servers and clients. It simplifies and streamlines network programming
&lt;br&gt;such as TCP and UDP socket servers.
&lt;br&gt;&lt;br&gt;Please visit our web site to download it:
&lt;br&gt;&lt;br&gt;&amp;nbsp; * &lt;a href=&quot;http://www.jboss.org/netty/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.jboss.org/netty/&lt;/a&gt;&lt;br&gt;&lt;br&gt;As always, your feed back is more than appreciated. &amp;nbsp;Please visit the
&lt;br&gt;discussion forum and leave some comments and questions:
&lt;br&gt;&lt;br&gt;&amp;nbsp; * &lt;a href=&quot;http://www.jboss.org/netty/community.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.jboss.org/netty/community.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;Alternatively, please follow us at Twitter and send a message:
&lt;br&gt;&lt;br&gt;&amp;nbsp; * &lt;a href=&quot;http://twitter.com/netty_project&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://twitter.com/netty_project&lt;/a&gt;&lt;br&gt;&lt;br&gt;Success Story - 100,000 Concurrent HTTP Connections
&lt;br&gt;===================================================
&lt;br&gt;Amir Aslihefendic was able to write a Comet server in just 1 day with
&lt;br&gt;Netty, after evaluating many alternatives. &amp;nbsp;His server is now serving
&lt;br&gt;100,000 concurrent HTTP connections at Plurk.com. &amp;nbsp;For more stories,
&lt;br&gt;read his post: &lt;a href=&quot;http://tinyurl.com/kpnjne&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://tinyurl.com/kpnjne&lt;/a&gt;&lt;br&gt;&lt;br&gt;Do you have a story to share with us about Netty? &amp;nbsp;Then please do not
&lt;br&gt;hesitate to contact us - such a story will make my day!
&lt;br&gt;&lt;br&gt;Complete Javadoc
&lt;br&gt;================
&lt;br&gt;As promised, this release includes full Javadoc for all public and
&lt;br&gt;protected methods. &amp;nbsp;Any new features added in 3.1 should be easier to
&lt;br&gt;use now. &amp;nbsp;I believe the documentation can be even better with your
&lt;br&gt;ongoing feed back. &amp;nbsp;Please feel free to contact us if the documentation
&lt;br&gt;does not tell you what you want to know about Netty or if it could be
&lt;br&gt;better organized.
&lt;br&gt;&lt;br&gt;Large Data Streaming
&lt;br&gt;====================
&lt;br&gt;Writing a large file or stream in a non-blocking asynchronous framework
&lt;br&gt;requires somewhat complex state management because asynchronous writes
&lt;br&gt;can lead to buffer overrun and OutOfMemoryError. &amp;nbsp;Therefore, data
&lt;br&gt;streaming was a highly demanded feature by the community. &amp;nbsp;This release
&lt;br&gt;introduces ChunkedWriteHandler which makes large media streaming easier
&lt;br&gt;than ever. &amp;nbsp;HTTP static file server has been added as an example:
&lt;br&gt;&lt;a href=&quot;http://tinyurl.com/n95or2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://tinyurl.com/n95or2&lt;/a&gt;&lt;br&gt;&lt;br&gt;HTTP Performance Improvements
&lt;br&gt;=============================
&lt;br&gt;The performance of HTTP decoder has been improved even further. &amp;nbsp;It is
&lt;br&gt;expected for most HTTP applications to experience about 10% performance
&lt;br&gt;boost, although your mileage may vary.
&lt;br&gt;&lt;br&gt;Proxy Server Example
&lt;br&gt;====================
&lt;br&gt;One of the most frequently asked questions is 'how do I write a proxy
&lt;br&gt;server with Netty?' &amp;nbsp;Because proxy server mixes the server-side and
&lt;br&gt;client-side terms for explanation, there is higher chance of confusion
&lt;br&gt;during the conversation. &amp;nbsp;So, I wrote a working proxy example. &amp;nbsp;Enjoy:
&lt;br&gt;&lt;a href=&quot;http://tinyurl.com/qq7ghu&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://tinyurl.com/qq7ghu&lt;/a&gt;&lt;br&gt;&lt;br&gt;Upcoming Releases
&lt;br&gt;=================
&lt;br&gt;The next release will be 3.1.0.GA with higher stability. &amp;nbsp;Please keep us
&lt;br&gt;updated with any bugs, design issues, API usability feed back, and
&lt;br&gt;questions.
&lt;br&gt;&lt;br&gt;Miscellaneous
&lt;br&gt;=============
&lt;br&gt;For the full changelog, please visit here:
&lt;br&gt;&lt;br&gt;&amp;nbsp; * &lt;a href=&quot;http://tinyurl.com/qh786q&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://tinyurl.com/qh786q&lt;/a&gt;&lt;br&gt;&lt;br&gt;Again, as always, your feed back is more than appreciated. &amp;nbsp;Please visit
&lt;br&gt;the discussion forum and feel free to leave some comments and questions:
&lt;br&gt;&lt;br&gt;&amp;nbsp; * &lt;a href=&quot;http://www.jboss.org/netty/community.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.jboss.org/netty/community.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;Alternatively, please follow us at Twitter and send a message:
&lt;br&gt;&lt;br&gt;&amp;nbsp; * &lt;a href=&quot;http://twitter.com/netty_project&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://twitter.com/netty_project&lt;/a&gt;&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;-- 
&lt;br&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt; &lt;br /&gt;_______________________________________________
&lt;br&gt;netty-users mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3140325&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;&lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://n2.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;signature.asc&lt;/strong&gt; (266 bytes) &lt;a href=&quot;http://n2.nabble.com/attachment/3140325/0/signature.asc&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;signature&quot;&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/Netty-3.1.0.CR1-released%3A-Large-Data-Streaming%2C-HTTP-Performance%2C-and-Javadoc-tp3140325p3140325.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3140291</id>
	<title>Anyone experiencing 100% CPU consumption in Netty NIO transports?</title>
	<published>2009-06-22T18:11:32Z</published>
	<updated>2009-06-22T18:11:32Z</updated>
	<author>
		<name>Trustin Lee</name>
	</author>
	<content type="html">Hi folks,
&lt;br&gt;&lt;br&gt;Someone reported that Netty might be vulnerable to the infamous NIO
&lt;br&gt;Selector bug where its fix was not delivered yet:
&lt;br&gt;&lt;br&gt;&amp;nbsp; * &lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6403933&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6403933&lt;/a&gt;&lt;br&gt;&amp;nbsp; * &lt;a href=&quot;http://forums.sun.com/thread.jspa?threadID=5135128&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://forums.sun.com/thread.jspa?threadID=5135128&lt;/a&gt;&lt;br&gt;&amp;nbsp; * &lt;a href=&quot;http://jira.codehaus.org/browse/JETTY-937&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://jira.codehaus.org/browse/JETTY-937&lt;/a&gt;&lt;br&gt;&amp;nbsp; * &lt;a href=&quot;https://issues.apache.org/jira/browse/DIRMINA-678&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/DIRMINA-678&lt;/a&gt;&lt;br&gt;&lt;br&gt;However, I was not contacted by anyone who reports that he or she is
&lt;br&gt;experiencing this issue with Netty, so I'm somewhat hesitant on applying
&lt;br&gt;the ugly workaround, especially considering the fix will be delivered in
&lt;br&gt;the upcoming JDK releases. &amp;nbsp;If there *is* someone who's experiencing
&lt;br&gt;this issue with Netty, then I will apply the workaround in the
&lt;br&gt;coordination with the problem reporter, because it is pretty difficult
&lt;br&gt;to reproduce the problem. &amp;nbsp;Personally, I did never encounter this problem.
&lt;br&gt;&lt;br&gt;Thanks in advance for your help
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt; &lt;br /&gt;_______________________________________________
&lt;br&gt;netty-users mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3140291&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;&lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://n2.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;signature.asc&lt;/strong&gt; (266 bytes) &lt;a href=&quot;http://n2.nabble.com/attachment/3140291/0/signature.asc&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;signature&quot;&gt;— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/Anyone-experiencing-100--CPU-consumption-in-Netty-NIO-transports--tp3140291p3140291.html" />
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3141385</id>
	<title>Re: using InternalLogger in Netty's wrapper</title>
	<published>2009-06-23T02:24:03Z</published>
	<updated>2009-06-23T02:24:03Z</updated>
	<author>
		<name>Piotr Findeisen</name>
	</author>
	<content type="html">Great thanks for the explanation.&lt;br&gt;I&amp;#39;ll where directed :)&lt;br&gt;&lt;br&gt;best regards!&lt;br&gt;Piotr&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Tue, Jun 23, 2009 at 11:20, &amp;quot;이희승 (Trustin Lee)&amp;quot; &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3141385&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;trustin@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;

&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;Hi Piotr,&lt;br&gt;
&lt;br&gt;
Ideally, all frameworks and libraries could use the same logging&lt;br&gt;
framework (java.util.logging) or facade (like commons-logging or slf4j),&lt;br&gt;
but the reality is some people prefers a particular framework (or even&lt;br&gt;
facade) to others.  Therefore, sticking to only one logging framework&lt;br&gt;
will often make your users complain.  That&amp;#39;s why I wrote a thin logging&lt;br&gt;
layer that is just enough for Netty itself.&lt;br&gt;
&lt;br&gt;
For the same reason, I was suggesting you to provide your own logging&lt;br&gt;
layer, but it&amp;#39;s up to you.  I think using SLF4J is not a bad idea at&lt;br&gt;
all.  It&amp;#39;s a great facade although it makes some beginners confused and&lt;br&gt;
some people prefers commons logging or just java.util.logging.&lt;br&gt;
&lt;br&gt;
However, if you are going to use Netty&amp;#39;s logging layer and expose it to&lt;br&gt;
users directly, you are exposing a logger that is optimized for Netty,&lt;br&gt;
not yours.  Its behavior is subject to change at any time to serve the&lt;br&gt;
need of Netty itself, not yours.  It actually contains some code that is&lt;br&gt;
specific to Netty class names.&lt;br&gt;
&lt;br&gt;
I know, in most cases, there will be code duplication and its waste of&lt;br&gt;
time and space, but I think this issue should be addressed in a&lt;br&gt;
different project like code generator or byte code manipulator.  Until&lt;br&gt;
then, I&amp;#39;d live with code duplication or just choose SLF4J or commons&lt;br&gt;
logging.&lt;br&gt;
&lt;br&gt;
BTW, to change the logging framework in Netty, you can call&lt;br&gt;
InternalLoggerFactory.setDefaultFactory(), and it&amp;#39;s absolutely fine.  I&lt;br&gt;
did never say that it&amp;#39;s prohibited to use InternalLoggerFactory. :)&lt;br&gt;
What&amp;#39;s not recommended is to access an InternalLogger, not an&lt;br&gt;
InternalLoggerFactory.  So.. your users can call it, too, although it&lt;br&gt;
wouldn&amp;#39;t look that beautiful.&lt;br&gt;
&lt;br&gt;
HTH,&lt;br&gt;
&lt;font color=&quot;#888888&quot;&gt;Trustin&lt;br&gt;
&lt;/font&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;&lt;br&gt;
On 2009-06-23 오후 5:50, Piotr Findeisen wrote:&lt;br&gt;
&amp;gt; Hi, Trustin&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; So should I copy part or the whole Netty&amp;#39;s InternalLoggerFactory?&lt;br&gt;
&amp;gt; If I&amp;#39;m going to support logging framework that Netty supports, it would&lt;br&gt;
&amp;gt; mean to copy Netty&amp;#39;s code. Well, I very much don&amp;#39;t like to copy code --&lt;br&gt;
&amp;gt; this is the reason of my question.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Why InternalLogger is marked as internal? What bad can happen if I use&lt;br&gt;
&amp;gt; it? Maybe it could stop being internal?&lt;br&gt;
&amp;gt; Or -- should I use an external factory that serves similar purpose? I&lt;br&gt;
&amp;gt; haven&amp;#39;t used it, but maybe SLF4J does the job?&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; regards,&lt;br&gt;
&amp;gt; Piotr&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;     If you are going to provide a logging layer similar to what Netty&lt;br&gt;
&amp;gt;     provides, you could write your own InternalLoggerFactory implementation&lt;br&gt;
&amp;gt;     that redirects all logs to your logging layer.  It should be trivial to&lt;br&gt;
&amp;gt;     implement, and the users will not need to touch InternalLoggerFactory at&lt;br&gt;
&amp;gt;     all.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;&amp;gt; ------------------------------------------------------------------------&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; _______________________________________________&lt;br&gt;
&amp;gt; netty-users mailing list&lt;br&gt;
&amp;gt; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3141385&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;&lt;br&gt;
&amp;gt; &lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
--&lt;br&gt;
— Trustin Lee, &lt;a href=&quot;http://gleamynode.net/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://gleamynode.net/&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br&gt;_______________________________________________&lt;br&gt;
netty-users mailing list&lt;br&gt;
&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3141385&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;netty-users mailing list
&lt;br&gt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3141385&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;netty-users@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.jboss.org/mailman/listinfo/netty-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.jboss.org/mailman/listinfo/netty-users&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/using-InternalLogger-in-Netty%27s-wrapper-tp3140355p3141385.html" />
</entry>

</feed>
