diff --git a/src/explorviz/live_trace_processing/filter/reduction/TracesSummarizationFilter.java b/src/explorviz/live_trace_processing/filter/reduction/TracesSummarizationFilter.java index 03dd4c67bd73bac764214e9338d8b48edd3e3033..711f320bac23a6d8b1370d9cd8c3ef684a721302 100644 --- a/src/explorviz/live_trace_processing/filter/reduction/TracesSummarizationFilter.java +++ b/src/explorviz/live_trace_processing/filter/reduction/TracesSummarizationFilter.java @@ -39,6 +39,7 @@ public class TracesSummarizationFilter extends AbstractFilter implements ITraceR if (trace.isValid()) { insertIntoBuffer(trace); } else { + makeTraceElementsAccumulator(trace); deliver(trace); } } else if (record instanceof TimedPeriodRecord) { @@ -56,14 +57,7 @@ public class TracesSummarizationFilter extends AbstractFilter implements ITraceR private void insertIntoBuffer(final Trace trace) { TracesSummarizationBuffer traceAggregationBuffer = trace2buffer.get(trace); if (traceAggregationBuffer == null) { - for (int i = 0; i < trace.getTraceEvents().size(); i++) { - final AbstractEventRecord event = trace.getTraceEvents().get(i); - if (event instanceof AbstractBeforeEventRecord) { - final AbstractBeforeEventRecord abstractBeforeEventRecord = (AbstractBeforeEventRecord) event; - abstractBeforeEventRecord.getRuntimeStatisticInformation().makeAccumulator( - abstractBeforeEventRecord.getObjectId()); - } - } + makeTraceElementsAccumulator(trace); traceAggregationBuffer = new TracesSummarizationBuffer( TimeProvider.getCurrentTimestamp()); @@ -72,6 +66,17 @@ public class TracesSummarizationFilter extends AbstractFilter implements ITraceR traceAggregationBuffer.insertTrace(trace); } + public void makeTraceElementsAccumulator(final Trace trace) { + for (int i = 0; i < trace.getTraceEvents().size(); i++) { + final AbstractEventRecord event = trace.getTraceEvents().get(i); + if (event instanceof AbstractBeforeEventRecord) { + final AbstractBeforeEventRecord abstractBeforeEventRecord = (AbstractBeforeEventRecord) event; + abstractBeforeEventRecord.getRuntimeStatisticInformation().makeAccumulator( + abstractBeforeEventRecord.getObjectId()); + } + } + } + private void processTimeoutQueue(final long timestamp) { final long bufferTimeout = timestamp - maxCollectionDuration; final List<Trace> toRemove = new ArrayList<Trace>();