fix(javaTest): close invalid history inputs explicitly

This commit is contained in:
zgw
2026-08-06 20:01:53 +08:00
parent 1cd9a7c1c0
commit 276a3cc51d
4 changed files with 116 additions and 13 deletions

View File

@@ -52,12 +52,20 @@ public final class HistoricalSimulationInputFactory {
failures.add(new HistoricalSimulationFailure(id, record, "INVALID_TASK_TYPE"));
continue;
}
PhysicalEndpointResolver.ResolvedEndpoints endpoints = endpointResolver.resolve(
record, compiled.getPassableSites());
PhysicalEndpointResolver.ResolvedEndpoints endpoints;
try {
endpoints = endpointResolver.resolve(record, compiled.getPassableSites());
} catch (IllegalArgumentException ex) {
// 未知地图端点不能进入调度循环;保留原始记录并形成可归档的输入失败。
failures.add(new HistoricalSimulationFailure(id, record,
"UNKNOWN_MAP_SITE:" + ex.getMessage()));
continue;
}
if (compiled.getComponentId(endpoints.getSource())
!= compiled.getComponentId(endpoints.getTarget())) {
// 两端地图连通性是调度启动前的硬约束,跨断开区域不能靠等待或选车解决。
throw new IllegalArgumentException("unreachable physical endpoints for " + id);
failures.add(new HistoricalSimulationFailure(id, record, "NO_ROUTE"));
continue;
}
tasks.add(new HistoricalSimulationTask(id, record, type,
record.getPriority() == null ? Integer.MAX_VALUE : record.getPriority(),