Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Wilkins2012-09-08 21:41:36 +0000
committerGreg Wilkins2012-09-08 21:42:03 +0000
commit2bb425d0b24208999d18050b598342fd8f16936c (patch)
tree793635505f8c164f9d10a1bd921d6b798dd0a97c
parent03a92fb966a61057e8b83e9f85aeee3c849494f5 (diff)
downloadorg.eclipse.jetty.project-2bb425d0b24208999d18050b598342fd8f16936c.tar.gz
org.eclipse.jetty.project-2bb425d0b24208999d18050b598342fd8f16936c.tar.xz
org.eclipse.jetty.project-2bb425d0b24208999d18050b598342fd8f16936c.zip
jetty-9 improved buffer recycling
-rw-r--r--jetty-io/src/main/java/org/eclipse/jetty/io/MappedByteBufferPool.java3
-rw-r--r--jetty-server/src/main/java/org/eclipse/jetty/server/AbstractConnector.java5
-rw-r--r--jetty-server/src/main/java/org/eclipse/jetty/server/HttpConnection.java13
3 files changed, 12 insertions, 9 deletions
diff --git a/jetty-io/src/main/java/org/eclipse/jetty/io/MappedByteBufferPool.java b/jetty-io/src/main/java/org/eclipse/jetty/io/MappedByteBufferPool.java
index ece77e5946..cb9a7f3385 100644
--- a/jetty-io/src/main/java/org/eclipse/jetty/io/MappedByteBufferPool.java
+++ b/jetty-io/src/main/java/org/eclipse/jetty/io/MappedByteBufferPool.java
@@ -64,6 +64,7 @@ public class MappedByteBufferPool implements ByteBufferPool
return result;
}
+ @Override
public void release(ByteBuffer buffer)
{
if (buffer == null)
@@ -82,7 +83,7 @@ public class MappedByteBufferPool implements ByteBufferPool
byteBuffers = existing;
}
- buffer.clear();
+ BufferUtil.clear(buffer);
byteBuffers.offer(buffer);
}
diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/AbstractConnector.java b/jetty-server/src/main/java/org/eclipse/jetty/server/AbstractConnector.java
index 1cdd2c0bd7..4afd4bdc0e 100644
--- a/jetty-server/src/main/java/org/eclipse/jetty/server/AbstractConnector.java
+++ b/jetty-server/src/main/java/org/eclipse/jetty/server/AbstractConnector.java
@@ -27,9 +27,9 @@ import java.util.concurrent.Executor;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
+import org.eclipse.jetty.io.ArrayByteBufferPool;
import org.eclipse.jetty.io.ByteBufferPool;
import org.eclipse.jetty.io.Connection;
-import org.eclipse.jetty.io.MappedByteBufferPool;
import org.eclipse.jetty.util.FutureCallback;
import org.eclipse.jetty.util.annotation.ManagedAttribute;
import org.eclipse.jetty.util.annotation.ManagedObject;
@@ -80,7 +80,7 @@ public abstract class AbstractConnector extends AggregateLifeCycle implements Co
_server=server;
_executor=executor!=null?executor:_server.getThreadPool();
_scheduler=scheduler!=null?scheduler:new TimerScheduler();
- _byteBufferPool = pool!=null?pool:new MappedByteBufferPool();
+ _byteBufferPool = pool!=null?pool:new ArrayByteBufferPool();
_sslContextFactory = sslContextFactory;
addBean(_server,false);
@@ -123,6 +123,7 @@ public abstract class AbstractConnector extends AggregateLifeCycle implements Co
return _byteBufferPool;
}
+ @Override
public SslContextFactory getSslContextFactory()
{
return _sslContextFactory;
diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/HttpConnection.java b/jetty-server/src/main/java/org/eclipse/jetty/server/HttpConnection.java
index 11a5f25822..29683309eb 100644
--- a/jetty-server/src/main/java/org/eclipse/jetty/server/HttpConnection.java
+++ b/jetty-server/src/main/java/org/eclipse/jetty/server/HttpConnection.java
@@ -105,6 +105,13 @@ public class HttpConnection extends AbstractConnection implements Runnable, Http
public void reset()
{
+ releaseRequestBuffer();
+ if (_chunk!=null)
+ {
+ _bufferPool.release(_chunk);
+ _chunk=null;
+ }
+
// If we are still expecting
if (_channel.isExpecting100Continue())
{
@@ -123,12 +130,6 @@ public class HttpConnection extends AbstractConnection implements Runnable, Http
_generator.reset();
_channel.reset();
- releaseRequestBuffer();
- if (_chunk!=null)
- {
- _bufferPool.release(_chunk);
- _chunk=null;
- }
}
@Override

Back to the top