[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