diff --git a/akka-http-core/src/main/scala/akka/http/impl/engine/parsing/HttpMessageParser.scala b/akka-http-core/src/main/scala/akka/http/impl/engine/parsing/HttpMessageParser.scala index 03457828b1..b5bd371965 100644 --- a/akka-http-core/src/main/scala/akka/http/impl/engine/parsing/HttpMessageParser.scala +++ b/akka-http-core/src/main/scala/akka/http/impl/engine/parsing/HttpMessageParser.scala @@ -252,7 +252,9 @@ private[http] abstract class HttpMessageParser[Output >: MessageOutput <: Parser def continue(input: ByteString, offset: Int)(next: (ByteString, Int) ⇒ StateResult): StateResult = { state = math.signum(offset - input.length) match { - case -1 ⇒ more ⇒ next(input ++ more, offset) + case -1 ⇒ + val remaining = input.drop(offset) + (more ⇒ next(remaining ++ more, 0)) case 0 ⇒ next(_, 0) case 1 ⇒ throw new IllegalStateException }