This is an automated email from the ASF dual-hosted git repository.
justinchen pushed a commit to branch npe-13
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/npe-13 by this push:
new 73c8ff4f995 Pipe: Fixed the NPE of progress report event (#17474)
73c8ff4f995 is described below
commit 73c8ff4f995190a7de141ca7ba7382293f7ff85d
Author: Caideyipi <[email protected]>
AuthorDate: Wed Apr 15 10:19:14 2026 +0800
Pipe: Fixed the NPE of progress report event (#17474)
---
.../source/dataregion/realtime/PipeRealtimeDataRegionSource.java | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/dataregion/realtime/PipeRealtimeDataRegionSource.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/dataregion/realtime/PipeRealtimeDataRegionSource.java
index f3ac85483bb..3c03ee732d0 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/dataregion/realtime/PipeRealtimeDataRegionSource.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/dataregion/realtime/PipeRealtimeDataRegionSource.java
@@ -375,7 +375,11 @@ public abstract class PipeRealtimeDataRegionSource
implements PipeExtractor {
// Since the batch and retry queue no longer need the heartbeat event to
trigger
// And the progress report event can trigger the processor calculation
because it's not reported
// yet
- while (((PipeRealtimeEvent) pendingQueue.peekLast()).getEvent() instanceof
PipeHeartbeatEvent) {
+ while (true) {
+ final PipeRealtimeEvent lastEvent = ((PipeRealtimeEvent)
pendingQueue.peekLast());
+ if (lastEvent == null || !(lastEvent.getEvent() instanceof
PipeHeartbeatEvent)) {
+ break;
+ }
pendingQueue.pollLast();
}
if (pendingQueue.peekLast() instanceof ProgressReportEvent) {