From 423ad7d9d8ff5d01e5d0ddeed51775ba845f3e6f Mon Sep 17 00:00:00 2001 From: Florian Fittkau <ffi@informatik.uni-kiel.de> Date: Mon, 28 Jul 2014 23:15:13 +0200 Subject: [PATCH] fix --- .../reduction/TracesSummarizationFilter.java | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/explorviz/live_trace_processing/filter/reduction/TracesSummarizationFilter.java b/src/explorviz/live_trace_processing/filter/reduction/TracesSummarizationFilter.java index 03dd4c6..711f320 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>(); -- GitLab