[jboss-cvs] JBoss Messaging SVN: r5952 - trunk/src/main/org/jboss/messaging/integration/transports/netty.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sat Feb 28 17:11:52 EST 2009


Author: ataylor
Date: 2009-02-28 17:11:52 -0500 (Sat, 28 Feb 2009)
New Revision: 5952

Modified:
   trunk/src/main/org/jboss/messaging/integration/transports/netty/HttpAcceptorHandler.java
Log:
support for static buffer size

Modified: trunk/src/main/org/jboss/messaging/integration/transports/netty/HttpAcceptorHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/integration/transports/netty/HttpAcceptorHandler.java	2009-02-28 19:16:58 UTC (rev 5951)
+++ trunk/src/main/org/jboss/messaging/integration/transports/netty/HttpAcceptorHandler.java	2009-02-28 22:11:52 UTC (rev 5952)
@@ -21,20 +21,13 @@
  */
 package org.jboss.messaging.integration.transports.netty;
 
-import static org.jboss.netty.channel.Channels.write;
-
-import java.util.concurrent.BlockingQueue;
-import java.util.concurrent.Executor;
-import java.util.concurrent.LinkedBlockingQueue;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
-
 import org.jboss.netty.buffer.ChannelBuffer;
 import org.jboss.netty.buffer.ChannelBuffers;
 import org.jboss.netty.channel.Channel;
 import org.jboss.netty.channel.ChannelHandlerContext;
 import org.jboss.netty.channel.ChannelPipelineCoverage;
 import org.jboss.netty.channel.ChannelStateEvent;
+import static org.jboss.netty.channel.Channels.write;
 import org.jboss.netty.channel.MessageEvent;
 import org.jboss.netty.channel.SimpleChannelHandler;
 import org.jboss.netty.channel.UpstreamMessageEvent;
@@ -46,6 +39,12 @@
 import org.jboss.netty.handler.codec.http.HttpResponseStatus;
 import org.jboss.netty.handler.codec.http.HttpVersion;
 
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.Executor;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+
 /**
  * takes care of making sure that every request has a response and also that any uninitiated responses always wait for a response.
  * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
@@ -178,18 +177,27 @@
          while (responseHolder == null);
          if (!bogusResponse)
          {
-            piggyBackResponses();
+            ChannelBuffer piggyBackBuffer = piggyBackResponses();
+            responseHolder.response.setContent(piggyBackBuffer);
+            responseHolder.response.addHeader(HttpHeaders.Names.CONTENT_LENGTH, String.valueOf(piggyBackBuffer.writerIndex()));
+            channel.write(responseHolder.response);
          }
-         responseHolder.response.setContent(buffer);
-         responseHolder.response.addHeader(HttpHeaders.Names.CONTENT_LENGTH, String.valueOf(buffer.writerIndex()));
-         channel.write(responseHolder.response);
+         else
+         {
+            responseHolder.response.setContent(buffer);
+            responseHolder.response.addHeader(HttpHeaders.Names.CONTENT_LENGTH, String.valueOf(buffer.writerIndex()));
+            channel.write(responseHolder.response);
+         }
+
       }
 
-      private void piggyBackResponses()
+      private ChannelBuffer piggyBackResponses()
       {
          // if we are the last available response then we have to piggy back any remaining responses
          if (responses.isEmpty())
          {
+            ChannelBuffer buf = org.jboss.netty.buffer.ChannelBuffers.dynamicBuffer();
+            buf.writeBytes(buffer);
             do
             {
                try
@@ -199,7 +207,7 @@
                   {
                      break;
                   }
-                  buffer.writeBytes(responseRunner.buffer);
+                  buf.writeBytes(responseRunner.buffer);
                }
                catch (InterruptedException e)
                {
@@ -207,8 +215,11 @@
                }
             }
             while (responses.isEmpty());
+            return buf;
          }
+         return buffer;
       }
+
    }
 
    /**




More information about the jboss-cvs-commits mailing list