From d5dc39ce77c49c0c7f922d3aa0fd4a963bf5e7c6 Mon Sep 17 00:00:00 2001 From: "KNS\\swwang" Date: Fri, 26 Sep 2025 09:20:56 +0800 Subject: [PATCH] Fix NPE in FluxWindowTimeout when window is null Add null check in WindowTimeoutWithBackpressureSubscriber.onNext() to handle hot publishers that emit before downstream request(). Elements are dropped gracefully using Operators.onNextDropped() when window hasn't been created yet, maintaining backpressure semantics. Signed-off-by: AHWSWTYCL <2190844544@qq.com> --- .../main/java/reactor/core/publisher/FluxWindowTimeout.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/reactor-core/src/main/java/reactor/core/publisher/FluxWindowTimeout.java b/reactor-core/src/main/java/reactor/core/publisher/FluxWindowTimeout.java index a2381575f9..304e9af382 100644 --- a/reactor-core/src/main/java/reactor/core/publisher/FluxWindowTimeout.java +++ b/reactor-core/src/main/java/reactor/core/publisher/FluxWindowTimeout.java @@ -184,6 +184,11 @@ public void onNext(T t) { } final InnerWindow window = this.window; + if (window == null) { + Operators.onDiscard(t, this.actual.currentContext()); + return; + } + if (window.sendNext(t)) { return; }