diff --git a/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/message/MessageInputStream.java b/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/message/MessageInputStream.java index cfbc822e090c..09a1146c75db 100644 --- a/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/message/MessageInputStream.java +++ b/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/message/MessageInputStream.java @@ -163,7 +163,8 @@ public void close() for (ByteBuffer buffer : buffers) { - bufferPool.release(buffer); + if (buffer != null && buffer != EOF) + bufferPool.release(buffer); } activeBuffer = null; @@ -259,7 +260,8 @@ public int read(byte[] b, int off, int len) throws IOException synchronized (this) { // Release buffer back to pool. - bufferPool.release(activeBuffer); + if (activeBuffer != null && activeBuffer != EOF) + bufferPool.release(activeBuffer); activeBuffer = null; switch (state)