fix: include headers and properties in has_trace_data detection
IngestionService.hasAnyTraceData() and ChunkAccumulator only checked for inputBody/outputBody when setting has_trace_data on executions. Headers and properties captured via deep tracing were not considered, causing the trace data indicator to be missing in the exchange list. DetailService already checked all six fields — this aligns the ingestion path to match. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -70,7 +70,11 @@ public class ChunkAccumulator {
|
||||
chunk.getStartTime(),
|
||||
chunk.getProcessors()));
|
||||
chunkHasTrace = chunk.getProcessors().stream()
|
||||
.anyMatch(p -> isNonEmpty(p.getInputBody()) || isNonEmpty(p.getOutputBody()));
|
||||
.anyMatch(p -> isNonEmpty(p.getInputBody()) || isNonEmpty(p.getOutputBody())
|
||||
|| (p.getInputHeaders() != null && !p.getInputHeaders().isEmpty())
|
||||
|| (p.getOutputHeaders() != null && !p.getOutputHeaders().isEmpty())
|
||||
|| (p.getInputProperties() != null && !p.getInputProperties().isEmpty())
|
||||
|| (p.getOutputProperties() != null && !p.getOutputProperties().isEmpty()));
|
||||
}
|
||||
|
||||
// 2. Buffer/merge the exchange envelope
|
||||
|
||||
@@ -136,7 +136,9 @@ public class IngestionService {
|
||||
private static boolean hasAnyTraceData(List<ProcessorExecution> processors) {
|
||||
if (processors == null) return false;
|
||||
for (ProcessorExecution p : processors) {
|
||||
if (p.getInputBody() != null || p.getOutputBody() != null) return true;
|
||||
if (p.getInputBody() != null || p.getOutputBody() != null
|
||||
|| p.getInputHeaders() != null || p.getOutputHeaders() != null
|
||||
|| p.getInputProperties() != null || p.getOutputProperties() != null) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user