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