diff --git a/src/explorviz/live_trace_processing/filter/reduction/TracesSummarizationFilter.java b/src/explorviz/live_trace_processing/filter/reduction/TracesSummarizationFilter.java index 9513a2fe36292506668815a645c5f71218110b73..fc24b69869d6a62b98683e07ddf40ba5e7beb2fe 100644 --- a/src/explorviz/live_trace_processing/filter/reduction/TracesSummarizationFilter.java +++ b/src/explorviz/live_trace_processing/filter/reduction/TracesSummarizationFilter.java @@ -1,7 +1,6 @@ package explorviz.live_trace_processing.filter.reduction; -import java.util.ArrayList; -import java.util.List; +import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.TreeMap; @@ -78,7 +77,7 @@ public class TracesSummarizationFilter extends AbstractFilter implements ITraceR final AbstractBeforeOperationEventRecord abstractBeforeOperationEventRecord = (AbstractBeforeOperationEventRecord) abstractBeforeEventRecord; abstractBeforeOperationEventRecord.getRuntimeStatisticInformation() - .makeAccumulator(abstractBeforeOperationEventRecord.getObjectId()); + .makeAccumulator(abstractBeforeOperationEventRecord.getObjectId()); } else { abstractBeforeEventRecord.getRuntimeStatisticInformation().makeAccumulator(0); @@ -89,21 +88,17 @@ public class TracesSummarizationFilter extends AbstractFilter implements ITraceR private void processTimeoutQueue(final long timestamp) { final long bufferTimeout = timestamp - maxCollectionDuration; - final List<Trace> toRemove = new ArrayList<Trace>(); - for (final Entry<Trace, TracesSummarizationBuffer> traceBufferEntrySet : trace2buffer - .entrySet()) { + final Iterator<Entry<Trace, TracesSummarizationBuffer>> iter = trace2buffer.entrySet() + .iterator(); - if (traceBufferEntrySet.getValue().getBufferCreatedTimestamp() <= bufferTimeout) { - final Trace aggregatedTrace = traceBufferEntrySet.getValue().getAggregatedTrace(); + while (iter.hasNext()) { + final Entry<Trace, TracesSummarizationBuffer> traceBufferEntry = iter.next(); - deliver(aggregatedTrace); - toRemove.add(traceBufferEntrySet.getKey()); - } + if (traceBufferEntry.getValue().getBufferCreatedTimestamp() <= bufferTimeout) { + final Trace aggregatedTrace = traceBufferEntry.getValue().getAggregatedTrace(); - } - for (final Trace trace : toRemove) { - if (trace2buffer.remove(trace) == null) { - System.out.println("no trace found :("); + deliver(aggregatedTrace); + iter.remove(); } } }