diff --git a/http-core/src/main/scala/org/apache/pekko/http/impl/engine/http2/Http2StreamHandling.scala b/http-core/src/main/scala/org/apache/pekko/http/impl/engine/http2/Http2StreamHandling.scala index e17ca4dc35..f59037de04 100644 --- a/http-core/src/main/scala/org/apache/pekko/http/impl/engine/http2/Http2StreamHandling.scala +++ b/http-core/src/main/scala/org/apache/pekko/http/impl/engine/http2/Http2StreamHandling.scala @@ -358,7 +358,10 @@ private[http2] trait Http2StreamHandling extends GraphStageLogic with LogHelper extraInitialWindow: Int) extends ReceivingData { override protected def onDataFrame(dataFrame: DataFrame): StreamState = { - val newData = collectedData ++ dataFrame.payload + val newData = + if (collectedData.isEmpty) dataFrame.payload + else if (dataFrame.payload.isEmpty) collectedData + else collectedData ++ dataFrame.payload if (dataFrame.endStream) { totalBufferedData -= newData.length