private DataBuffer toDataBuffer(ContentChunk chunk) { // We must copy until this is resolved: // https://github.com/eclipse/jetty.project/issues/2429 // Use copy instead of buffer wrapping because Callback#succeeded() is // used not only to release the buffer but also to request more data // which is a problem for codecs that buffer data. DataBuffer buffer = this.bufferFactory.allocateBuffer(chunk.buffer.capacity()); buffer.write(chunk.buffer); chunk.callback.succeeded(); return buffer; }
private DataBuffer toDataBuffer(ContentChunk chunk) { // We must copy until this is resolved: // https://github.com/eclipse/jetty.project/issues/2429 // Use copy instead of buffer wrapping because Callback#succeeded() is // used not only to release the buffer but also to request more data // which is a problem for codecs that buffer data. DataBuffer buffer = this.bufferFactory.allocateBuffer(chunk.buffer.capacity()); buffer.write(chunk.buffer); chunk.callback.succeeded(); return buffer; }
@Override public void send(@Nullable MetaData.Response info, boolean head, ByteBuffer content, boolean lastContent, Callback callback) { if (info != null) { this.info = info; } final int length = content.remaining(); if (length == 0) { callback.succeeded(); return; } if (content.hasArray()) { final int from = content.arrayOffset() + content.position(); out.add(HttpData.of(Arrays.copyOfRange(content.array(), from, from + length))); content.position(content.position() + length); } else { final byte[] data = new byte[length]; content.get(data); out.add(HttpData.of(data)); } contentLength += length; callback.succeeded(); }
@Override protected void onCompleteSuccess() { _callback.succeeded(); }
@Override public void succeeded() { callback.succeeded(); }
private int read0(ToIntFunction<Chunk> reader) throws IOException { if (closed) { throw new IllegalStateException("closed"); } if (readTop == null) { readTop = chunks.pollFirst(); } if (readTop == null || closed) { return -1; } final int result = reader.applyAsInt(readTop); if (!readTop.buf.hasRemaining()) { readTop.callback.succeeded(); readTop = null; } return result; }
@Override public void headers(HeadersInfo headersInfo, Callback handler) { // Ignore pushed headers handler.succeeded(); }
@Override public void succeeded() { callback.succeeded(); }
protected void complete() { if (_callback!=null) _callback.succeeded(); }
protected void complete() { if (_callback!=null) _callback.succeeded(); } }
/** Call to signal that a read is now possible. */ public void fillable() { if (_interested.compareAndSet(true,false)) { Callback callback=_callback; _callback=null; callback.succeeded(); } }
/** Call to signal that a read is now possible. */ public void fillable() { if (_interested.compareAndSet(true,false)) { Callback callback=_callback; _callback=null; callback.succeeded(); } }
@Override protected void onCompleteSuccess() { super.onCompleteSuccess(); callback.succeeded(); }
@Override protected void onCompleteSuccess() { super.onCompleteSuccess(); callback.succeeded(); }
@Override public void succeeded() { dataInfo.callback.succeeded(); super.succeeded(); }
private void complete(final Callback callback) { try { if (callback != null) callback.succeeded(); } catch (Throwable x) { LOG.info("Exception while notifying callback " + callback, x); } }
@Override public void succeeded() { Callback callback = endWrite(); if (callback != null) callback.succeeded(); }
@Override public void onComplete(Result result) { if (result.isSucceeded()) complete.succeeded(); else complete.failed(result.getFailure()); }
@Override protected void onCompleteSuccess() { releaseHeader(); _callback.succeeded(); if (_shutdownOut) getEndPoint().shutdownOutput(); }