diff --git a/spdy-core/src/main/java/org/eclipse/jetty/spdy/generator/DataFrameGenerator.java b/spdy-core/src/main/java/org/eclipse/jetty/spdy/generator/DataFrameGenerator.java index 509f4b4a692..d9676b37c55 100644 --- a/spdy-core/src/main/java/org/eclipse/jetty/spdy/generator/DataFrameGenerator.java +++ b/spdy-core/src/main/java/org/eclipse/jetty/spdy/generator/DataFrameGenerator.java @@ -25,7 +25,11 @@ public class DataFrameGenerator { public ByteBuffer generate(int streamId, int windowSize, DataInfo dataInfo) { - ByteBuffer buffer = ByteBuffer.allocateDirect(DataFrame.HEADER_LENGTH + windowSize); + // TODO: use buffer pool + int size = dataInfo.length(); + if (size > windowSize) + size = windowSize; + ByteBuffer buffer = ByteBuffer.allocateDirect(DataFrame.HEADER_LENGTH + size); buffer.position(DataFrame.HEADER_LENGTH); // Guaranteed to always be >= 0 int read = dataInfo.readInto(buffer);