From 6ac4afd36756de1b97e6730a80c62249af5d6f92 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 20 三月 2026 20:50:23 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/trace/StationTaskTraceRegistry.java | 19 +++++++++++++++++++
1 files changed, 19 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/zy/core/trace/StationTaskTraceRegistry.java b/src/main/java/com/zy/core/trace/StationTaskTraceRegistry.java
index 31a92e6..f983082 100644
--- a/src/main/java/com/zy/core/trace/StationTaskTraceRegistry.java
+++ b/src/main/java/com/zy/core/trace/StationTaskTraceRegistry.java
@@ -514,6 +514,9 @@
}
this.status = terminalStatus;
this.blockedStationId = blockedStationId;
+ if (shouldClearPathOnTerminal(terminalStatus)) {
+ clearPathState();
+ }
this.updatedAt = System.currentTimeMillis();
this.terminalExpireAt = this.updatedAt + TERMINAL_KEEP_MS;
@@ -525,6 +528,22 @@
appendEvent(eventType, message, nextDetails);
}
+ private void clearPathState() {
+ this.fullPathStationIds = new ArrayList<>();
+ this.issuedStationIds = new ArrayList<>();
+ this.passedStationIds = new ArrayList<>();
+ this.pendingStationIds = new ArrayList<>();
+ this.latestIssuedSegmentPath = new ArrayList<>();
+ this.segmentList = new ArrayList<>();
+ this.issuedSegmentCount = 0;
+ this.totalSegmentCount = 0;
+ }
+
+ private boolean shouldClearPathOnTerminal(String terminalStatus) {
+ return STATUS_BLOCKED.equals(terminalStatus)
+ || STATUS_CANCELLED.equals(terminalStatus);
+ }
+
private synchronized boolean shouldRemove(long now) {
return terminalExpireAt != null && terminalExpireAt <= now;
}
--
Gitblit v1.9.1