diff --git a/jetty-websocket/websocket-client/src/test/java/org/eclipse/jetty/websocket/client/examples/SimpleEchoClient.java b/jetty-websocket/websocket-client/src/test/java/org/eclipse/jetty/websocket/client/examples/SimpleEchoClient.java index 91b77b257e3..461e23a56b2 100644 --- a/jetty-websocket/websocket-client/src/test/java/org/eclipse/jetty/websocket/client/examples/SimpleEchoClient.java +++ b/jetty-websocket/websocket-client/src/test/java/org/eclipse/jetty/websocket/client/examples/SimpleEchoClient.java @@ -37,7 +37,7 @@ import org.eclipse.jetty.websocket.client.WebSocketClient; */ public class SimpleEchoClient { - @WebSocket + @WebSocket(maxMessageSize = 64 * 1024) public static class SimpleEchoSocket { private final CountDownLatch closeLatch; @@ -107,7 +107,7 @@ public class SimpleEchoClient URI echoUri = new URI(destUri); ClientUpgradeRequest request = new ClientUpgradeRequest(); - request.addExtensions("x-webkit-deflate-frame"); + // request.addExtensions("x-webkit-deflate-frame"); client.connect(socket,echoUri,request); System.out.printf("Connecting to : %s%n",echoUri); diff --git a/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/io/AbstractWebSocketConnection.java b/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/io/AbstractWebSocketConnection.java index 78a45e1ff40..fa407329637 100644 --- a/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/io/AbstractWebSocketConnection.java +++ b/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/io/AbstractWebSocketConnection.java @@ -123,6 +123,11 @@ public abstract class AbstractWebSocketConnection extends AbstractConnection imp private static final Logger LOG = Log.getLogger(AbstractWebSocketConnection.class); + /** + * Minimum size of a buffer is the determined to be what would be the maximum framing header size (not including payload) + */ + private static final int MIN_BUFFER_SIZE = Generator.OVERHEAD; + private final ForkInvoker invoker = new FlushInvoker(); private final ByteBufferPool bufferPool; private final Scheduler scheduler; @@ -501,6 +506,15 @@ public abstract class AbstractWebSocketConnection extends AbstractConnection imp this.extensions = extensions; } + @Override + public void setInputBufferSize(int inputBufferSize) + { + if(inputBufferSize < MIN_BUFFER_SIZE) { + throw new IllegalArgumentException("Cannot have buffer size less than " + MIN_BUFFER_SIZE); + } + super.setInputBufferSize(inputBufferSize); + } + @Override public void setSession(WebSocketSession session) {