diff --git a/jetty-client/src/main/java/org/eclipse/jetty/client/http/HttpReceiverOverHTTP.java b/jetty-client/src/main/java/org/eclipse/jetty/client/http/HttpReceiverOverHTTP.java index 3be68769bb5..d6a9c2f96a5 100644 --- a/jetty-client/src/main/java/org/eclipse/jetty/client/http/HttpReceiverOverHTTP.java +++ b/jetty-client/src/main/java/org/eclipse/jetty/client/http/HttpReceiverOverHTTP.java @@ -20,7 +20,6 @@ package org.eclipse.jetty.client.http; import java.io.EOFException; import java.nio.ByteBuffer; -import java.util.concurrent.atomic.AtomicReference; import org.eclipse.jetty.client.HttpClient; import org.eclipse.jetty.client.HttpExchange; @@ -40,7 +39,6 @@ import org.eclipse.jetty.util.CompletableCallback; public class HttpReceiverOverHTTP extends HttpReceiver implements HttpParser.ResponseHandler { - private final AtomicReference handlingContent = new AtomicReference<>(ContentState.IDLE); private final HttpParser parser; private ByteBuffer buffer; private boolean shutdown; @@ -265,18 +263,8 @@ public class HttpReceiverOverHTTP extends HttpReceiver implements HttpParser.Res if (exchange == null) return false; - handlingContent.set(ContentState.CONTENT); CompletableCallback callback = new CompletableCallback() { - @Override - public void succeeded() - { - boolean messageComplete = !handlingContent.compareAndSet(ContentState.CONTENT, ContentState.IDLE); - super.succeeded(); - if (messageComplete) - messageComplete(); - } - @Override public void resume() { @@ -316,9 +304,6 @@ public class HttpReceiverOverHTTP extends HttpReceiver implements HttpParser.Res @Override public boolean messageComplete() { - if (handlingContent.compareAndSet(ContentState.CONTENT, ContentState.COMPLETE)) - return false; - HttpExchange exchange = getHttpExchange(); if (exchange == null) return false; @@ -390,6 +375,4 @@ public class HttpReceiverOverHTTP extends HttpReceiver implements HttpParser.Res { return String.format("%s[%s]", super.toString(), parser); } - - private enum ContentState { IDLE, CONTENT, COMPLETE } } diff --git a/jetty-http/src/main/java/org/eclipse/jetty/http/HttpParser.java b/jetty-http/src/main/java/org/eclipse/jetty/http/HttpParser.java index 3c0405e9cf7..a00e3e6c49a 100644 --- a/jetty-http/src/main/java/org/eclipse/jetty/http/HttpParser.java +++ b/jetty-http/src/main/java/org/eclipse/jetty/http/HttpParser.java @@ -1660,16 +1660,14 @@ public class HttpParser _contentPosition += _contentChunk.remaining(); buffer.position(buffer.position()+_contentChunk.remaining()); - boolean handle = _handler.content(_contentChunk); + if (_handler.content(_contentChunk)) + return true; if(_contentPosition == _contentLength) { setState(State.END); - boolean handleContent = handleContentMessage(); - return handle || handleContent; + return handleContentMessage(); } - else if (handle) - return true; } break; }