[#1210] Allow to use derived buffers with DefaultBufferHolder and so fix broken SpdySessionHandler
This commit is contained in:
parent
f53db96a3e
commit
71727e42de
@ -27,10 +27,6 @@ public class DefaultByteBufHolder implements ByteBufHolder {
|
|||||||
if (data == null) {
|
if (data == null) {
|
||||||
throw new NullPointerException("data");
|
throw new NullPointerException("data");
|
||||||
}
|
}
|
||||||
if (data.unwrap() != null && !(data instanceof SwappedByteBuf)) {
|
|
||||||
throw new IllegalArgumentException("Only not-derived ByteBuf instance are supported, you used: "
|
|
||||||
+ data.getClass().getSimpleName());
|
|
||||||
}
|
|
||||||
this.data = data;
|
this.data = data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -208,7 +208,7 @@ public class SpdySessionHandler
|
|||||||
if (newWindowSize < 0) {
|
if (newWindowSize < 0) {
|
||||||
while (spdyDataFrame.data().readableBytes() > initialReceiveWindowSize) {
|
while (spdyDataFrame.data().readableBytes() > initialReceiveWindowSize) {
|
||||||
SpdyDataFrame partialDataFrame = new DefaultSpdyDataFrame(streamID,
|
SpdyDataFrame partialDataFrame = new DefaultSpdyDataFrame(streamID,
|
||||||
spdyDataFrame.data().readSlice(initialReceiveWindowSize));
|
spdyDataFrame.data().readSlice(initialReceiveWindowSize).retain());
|
||||||
ctx.nextOutboundMessageBuffer().add(partialDataFrame);
|
ctx.nextOutboundMessageBuffer().add(partialDataFrame);
|
||||||
ctx.flush();
|
ctx.flush();
|
||||||
}
|
}
|
||||||
@ -525,7 +525,7 @@ public class SpdySessionHandler
|
|||||||
|
|
||||||
// Create a partial data frame whose length is the current window size
|
// Create a partial data frame whose length is the current window size
|
||||||
SpdyDataFrame partialDataFrame = new DefaultSpdyDataFrame(streamID,
|
SpdyDataFrame partialDataFrame = new DefaultSpdyDataFrame(streamID,
|
||||||
spdyDataFrame.data().readSlice(sendWindowSize));
|
spdyDataFrame.data().readSlice(sendWindowSize).retain());
|
||||||
|
|
||||||
// Enqueue the remaining data (will be the first frame queued)
|
// Enqueue the remaining data (will be the first frame queued)
|
||||||
spdySession.putPendingWrite(streamID, spdyDataFrame);
|
spdySession.putPendingWrite(streamID, spdyDataFrame);
|
||||||
@ -849,7 +849,7 @@ public class SpdySessionHandler
|
|||||||
|
|
||||||
// Create a partial data frame whose length is the current window size
|
// Create a partial data frame whose length is the current window size
|
||||||
SpdyDataFrame partialDataFrame = new DefaultSpdyDataFrame(streamID,
|
SpdyDataFrame partialDataFrame = new DefaultSpdyDataFrame(streamID,
|
||||||
spdyDataFrame.data().readSlice(newWindowSize));
|
spdyDataFrame.data().readSlice(newWindowSize).retain());
|
||||||
|
|
||||||
// The transfer window size is pre-decremented when sending a data frame downstream.
|
// The transfer window size is pre-decremented when sending a data frame downstream.
|
||||||
// Close the stream on write failures that leaves the transfer window in a corrupt state.
|
// Close the stream on write failures that leaves the transfer window in a corrupt state.
|
||||||
|
Loading…
Reference in New Issue
Block a user