protected ChunkedStreamSourceConduit(final StreamSourceConduit next, final BufferWrapper bufferWrapper, final ConduitListener<? super ChunkedStreamSourceConduit> finishListener, final Attachable attachable, final HttpServerExchange exchange, final Closeable closeable) { super(next); this.bufferWrapper = bufferWrapper; this.finishListener = finishListener; this.remainingAllowed = Long.MIN_VALUE; this.chunkReader = new ChunkReader<>(attachable, HttpAttachments.REQUEST_TRAILERS, this); this.exchange = exchange; this.closeable = closeable; }
throw new ClosedChannelException(); if (chunkReader.getChunkRemaining() == -1) { throw UndertowMessages.MESSAGES.extraDataWrittenAfterChunkEnd(); try { while (true) { long chunkRemaining = chunkReader.readChunk(src); if (chunkRemaining == -1) { if (src.remaining() == 0) { src.position(src.limit()); chunkReader.setChunkRemaining(remaining); if (!src.hasRemaining()) { break;
public boolean isFinished() { return closed || chunkReader.getChunkRemaining() == -1; }
try { if (anyAreSet(oldVal, FLAG_READING_AFTER_LAST)) { int ret = handleChunkedRequestEnd(buf); if (ret == -1) { newVal |= FLAG_FINISHED & ~FLAG_READING_AFTER_LAST; int ret = handleChunkedRequestEnd(buf); if (ret == -1) { newVal |= FLAG_FINISHED & ~FLAG_READING_AFTER_LAST;
@Override public void terminateWrites() throws IOException { if (anyAreSet(state, FLAG_WRITES_SHUTDOWN)) { return; } if (chunkReader.getChunkRemaining() != -1) { throw UndertowMessages.MESSAGES.chunkedChannelClosedMidChunk(); } state |= FLAG_WRITES_SHUTDOWN; }
try { if (anyAreSet(oldVal, FLAG_READING_AFTER_LAST)) { int ret = handleChunkedRequestEnd(buf); if (ret == -1) { newVal |= FLAG_FINISHED & ~FLAG_READING_AFTER_LAST; int ret = handleChunkedRequestEnd(buf); if (ret == -1) { newVal |= FLAG_FINISHED & ~FLAG_READING_AFTER_LAST;
boolean invokeFinishListener = false; try { long chunkRemaining = chunkReader.getChunkRemaining(); chunkRemaining = chunkReader.readChunk(buf); if (chunkRemaining <= 0) { if(buf.hasRemaining()) { chunkReader.setChunkRemaining(chunkRemaining);
public boolean isFinished() { return closed || chunkReader.getChunkRemaining() == -1; }
/** * Construct a new instance. * * @param next the channel to wrap * @param finishListener The finish listener * @param attachable The attachable */ public PreChunkedStreamSinkConduit(final StreamSinkConduit next, final ConduitListener<? super PreChunkedStreamSinkConduit> finishListener, final Attachable attachable) { super(next); //we don't want the reader to call the finish listener, so we pass null this.chunkReader = new ChunkReader<>(attachable, HttpAttachments.RESPONSE_TRAILERS, this); this.finishListener = finishListener; }
try { if (anyAreSet(oldVal, FLAG_READING_AFTER_LAST)) { int ret = handleChunkedRequestEnd(buf); if (ret == -1) { newVal |= FLAG_FINISHED & ~FLAG_READING_AFTER_LAST; int ret = handleChunkedRequestEnd(buf); if (ret == -1) { newVal |= FLAG_FINISHED & ~FLAG_READING_AFTER_LAST;
throw new ClosedChannelException(); if (chunkReader.getChunkRemaining() == -1) { throw UndertowMessages.MESSAGES.extraDataWrittenAfterChunkEnd(); try { while (true) { long chunkRemaining = chunkReader.readChunk(src); if (chunkRemaining == -1) { if (src.remaining() == 0) { src.position(src.limit()); chunkReader.setChunkRemaining(remaining); if (!src.hasRemaining()) { break;
public boolean isFinished() { return closed || chunkReader.getChunkRemaining() == -1; }
protected ChunkedStreamSourceConduit(final StreamSourceConduit next, final BufferWrapper bufferWrapper, final ConduitListener<? super ChunkedStreamSourceConduit> finishListener, final Attachable attachable, final HttpServerExchange exchange, final Closeable closeable) { super(next); this.bufferWrapper = bufferWrapper; this.finishListener = finishListener; this.remainingAllowed = Long.MIN_VALUE; this.chunkReader = new ChunkReader<>(attachable, HttpAttachments.REQUEST_TRAILERS, this); this.exchange = exchange; this.closeable = closeable; }
throw new ClosedChannelException(); if (chunkReader.getChunkRemaining() == -1) { throw UndertowMessages.MESSAGES.extraDataWrittenAfterChunkEnd(); try { while (true) { long chunkRemaining = chunkReader.readChunk(src); if (chunkRemaining == -1) { if (src.remaining() == 0) { src.position(src.limit()); chunkReader.setChunkRemaining(remaining); if (!src.hasRemaining()) { break;
@Override public void terminateWrites() throws IOException { if (anyAreSet(state, FLAG_WRITES_SHUTDOWN)) { return; } if (chunkReader.getChunkRemaining() != -1) { throw UndertowMessages.MESSAGES.chunkedChannelClosedMidChunk(); } state |= FLAG_WRITES_SHUTDOWN; }
/** * Construct a new instance. * * @param next the channel to wrap * @param finishListener The finish listener * @param attachable The attachable */ public PreChunkedStreamSinkConduit(final StreamSinkConduit next, final ConduitListener<? super PreChunkedStreamSinkConduit> finishListener, final Attachable attachable) { super(next); //we don't want the reader to call the finish listener, so we pass null this.chunkReader = new ChunkReader<>(attachable, HttpAttachments.RESPONSE_TRAILERS, this); this.finishListener = finishListener; }
boolean invokeFinishListener = false; try { long chunkRemaining = chunkReader.getChunkRemaining(); chunkRemaining = chunkReader.readChunk(buf); if (chunkRemaining <= 0) { if(buf.hasRemaining()) { chunkReader.setChunkRemaining(chunkRemaining);
@Override public void terminateWrites() throws IOException { if (anyAreSet(state, FLAG_WRITES_SHUTDOWN)) { return; } if (chunkReader.getChunkRemaining() != -1) { throw UndertowMessages.MESSAGES.chunkedChannelClosedMidChunk(); } state |= FLAG_WRITES_SHUTDOWN; }
protected ChunkedStreamSourceConduit(final StreamSourceConduit next, final BufferWrapper bufferWrapper, final ConduitListener<? super ChunkedStreamSourceConduit> finishListener, final Attachable attachable, final HttpServerExchange exchange, final Closeable closeable) { super(next); this.bufferWrapper = bufferWrapper; this.finishListener = finishListener; this.remainingAllowed = Long.MIN_VALUE; this.chunkReader = new ChunkReader<>(attachable, HttpAttachments.REQUEST_TRAILERS, this); this.exchange = exchange; this.closeable = closeable; }
boolean invokeFinishListener = false; try { long chunkRemaining = chunkReader.getChunkRemaining(); chunkRemaining = chunkReader.readChunk(buf); if (chunkRemaining <= 0) { if(buf.hasRemaining()) { chunkReader.setChunkRemaining(chunkRemaining);