private void decrement(Object msg) { if (msg == null) { return; } // check if its a HttpMessage and its not chunked if (msg instanceof HttpMessage && !((HttpMessage) msg).isChunked()) { requestResponseCounter.decrementAndGet(); } else if (msg instanceof HttpChunk && ((HttpChunk) msg).isLast()) { requestResponseCounter.decrementAndGet(); } else if (msg instanceof Object[]) { // we just decrement it here as we only use this if the end of the chunk is reached // It would be more safe to check all the objects in the array but would also be slower requestResponseCounter.decrementAndGet(); } } @Override
} else if (message.isChunked()) {
if (m.isChunked()) {
private Object readFixedLengthContent(ChannelBuffer buffer) { //we have a content-length so we just read the correct number of bytes long length = HttpHeaders.getContentLength(message, -1); assert length <= Integer.MAX_VALUE; int toRead = (int) length - contentRead; if (toRead > actualReadableBytes()) { toRead = actualReadableBytes(); } contentRead += toRead; if (length < contentRead) { if (!message.isChunked()) { message.setChunked(true); return new Object[] {message, new DefaultHttpChunk(buffer.readBytes(toRead))}; } else { return new DefaultHttpChunk(buffer.readBytes(toRead)); } } if (content == null) { content = buffer.readBytes((int) length); } else { content.writeBytes(buffer, (int) length); } return reset(); }
HttpMessage m = (HttpMessage) msg; boolean contentMustBeEmpty; if (m.isChunked()) {
private SpdySynStreamFrame createSynStreamFrame(HttpMessage httpMessage) throws Exception { boolean chunked = httpMessage.isChunked();
toRead = maxChunkSize; if (!message.isChunked()) { message.setChunked(true); return new Object[] {message, new DefaultHttpChunk(buffer.readBytes(toRead))};
@Override public void writeRequested(ChannelHandlerContext ctx, MessageEvent e) throws Exception { if (e.getMessage() instanceof HttpChunk) { if (((HttpChunk) e.getMessage()).isLast()) { context.stop(); logDifference(System.nanoTime() - start); LOG.debug("saw last chunk"); } } else if (e.getMessage() instanceof HttpMessage) { if (!((HttpMessage) e.getMessage()).isChunked()) { context.stop(); logDifference(System.nanoTime() - start); } LOG.debug("headers: {}", ((HttpMessage) e.getMessage()).getHeaders()); } else { context.stop(); logDifference(System.nanoTime() - start); } LOG.debug("saw message {}", e.getMessage()); super.writeRequested(ctx, e); }
@Override public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception { if (e.getMessage() instanceof HttpChunk) { if (((HttpChunk) e.getMessage()).isLast()) { logDifference(System.nanoTime() - writeStart); exchangeContext.stop(); } } else if (e.getMessage() instanceof HttpMessage) { if (!((HttpMessage) e.getMessage()).isChunked()) { logDifference(System.nanoTime() - writeStart); exchangeContext.stop(); } } else { logDifference(System.nanoTime() - writeStart); exchangeContext.stop(); } super.messageReceived(ctx, e); }
if (currentMessage == null) { HttpMessage m = (HttpMessage) msg; if (m.isChunked()) { String localName = UUID.randomUUID().toString();