From d34927b56b2ecc06937cd668ece26515e49bee49 Mon Sep 17 00:00:00 2001 From: "He-Pin(kerr)" Date: Fri, 3 Jan 2025 21:46:40 +0800 Subject: [PATCH] fix: Fix a leak in PrefixAndTail operator. (#1623) --- .../org/apache/pekko/stream/impl/fusing/StreamOfStreams.scala | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/stream/src/main/scala/org/apache/pekko/stream/impl/fusing/StreamOfStreams.scala b/stream/src/main/scala/org/apache/pekko/stream/impl/fusing/StreamOfStreams.scala index dc84291b2e..4c9b9cea7b 100644 --- a/stream/src/main/scala/org/apache/pekko/stream/impl/fusing/StreamOfStreams.scala +++ b/stream/src/main/scala/org/apache/pekko/stream/impl/fusing/StreamOfStreams.scala @@ -237,7 +237,9 @@ import pekko.util.ccompat.JavaConverters._ override def onUpstreamFinish(): Unit = { if (!prefixComplete) { // This handles the unpulled out case as well - emit(out, (builder.result(), Source.empty), () => completeStage()) + val prefix = builder.result(); + builder = null // free for GC + emit(out, (prefix, Source.empty), () => completeStage()) } else { if (!tailSource.isClosed) tailSource.complete() completeStage()