diff --git a/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBuffer.java b/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBuffer.java
index 7b145caaa8a69eddcaebd596683ccbe93a32e9fe..a82d32bf7d4f6f9f31f120e0f80c4dfb1099fd75 100644
--- a/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBuffer.java
+++ b/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBuffer.java
@@ -76,13 +76,13 @@ class TraceReconstructionBuffer {
 	}
 
 	public final Trace toTrace(final boolean valid) {
-		final Stack<AbstractEventRecord> stack = new Stack<AbstractEventRecord>();
+		final Stack<AbstractBeforeEventRecord> stack = new Stack<AbstractBeforeEventRecord>();
 		for (final AbstractEventRecord event : events) {
 			if (event instanceof AbstractBeforeEventRecord) {
-				stack.push(event);
+				stack.push((AbstractBeforeEventRecord) event);
 			} else if ((event instanceof AbstractAfterEventRecord)
 					|| (event instanceof AbstractAfterFailedEventRecord)) {
-				final AbstractEventRecord beforeEvent = stack.pop();
+				final AbstractBeforeEventRecord beforeEvent = stack.pop();
 
 				final long time = event.getLoggingTimestamp() - beforeEvent.getLoggingTimestamp();
 				beforeEvent.getRuntime().set(time);
diff --git a/src/explorviz/live_trace_processing/filter/reduction/summarization/TracePatternSummarizationBuffer.java b/src/explorviz/live_trace_processing/filter/reduction/summarization/TracePatternSummarizationBuffer.java
index a7cba068b83fcb8898ae80ca1abba0faf3e4a5eb..d6d7635d52cfd8c2d590d2df8fd10beebc29d6ce 100644
--- a/src/explorviz/live_trace_processing/filter/reduction/summarization/TracePatternSummarizationBuffer.java
+++ b/src/explorviz/live_trace_processing/filter/reduction/summarization/TracePatternSummarizationBuffer.java
@@ -32,7 +32,11 @@ class TracePatternSummarizationBuffer {
 			for (int i = 0; i < aggregatedRecords.size(); i++) {
 				final AbstractEventRecord event = aggregatedRecords.get(i);
 				if (event instanceof AbstractBeforeEventRecord) {
-					aggregatedRecords.get(i).getRuntime().merge(records.get(i).getRuntime());
+					final AbstractBeforeEventRecord abstractBeforeEventRecord = (AbstractBeforeEventRecord) event;
+					final AbstractBeforeEventRecord abstractBeforeEventRecord2 = (AbstractBeforeEventRecord) records
+							.get(i);
+					abstractBeforeEventRecord.getRuntime().merge(
+							abstractBeforeEventRecord2.getRuntime());
 				}
 			}
 		}
diff --git a/src/explorviz/live_trace_processing/reader/TCPReaderOneClient.java b/src/explorviz/live_trace_processing/reader/TCPReaderOneClient.java
index 961c686c98a9a6b8154ac172ac4da26497779b23..71a6a7d584b519e4fecda457ee751290cc9f7718 100644
--- a/src/explorviz/live_trace_processing/reader/TCPReaderOneClient.java
+++ b/src/explorviz/live_trace_processing/reader/TCPReaderOneClient.java
@@ -303,8 +303,7 @@ public class TCPReaderOneClient extends Thread implements IPeriodicTimeSignalRec
 			final String cause = stringRegistry.getStringFromId(causeId);
 
 			putInRingBuffer(new AfterFailedOperationEventRecord(timestamp, traceId, orderIndex,
-					objectId, operation, cause, hostApplicationMetadata,
-					new RuntimeStatisticInformation()));
+					objectId, operation, cause, hostApplicationMetadata));
 		} catch (final IdNotAvailableException e) {
 			putInWaitingMessages(buffer,
 					AfterFailedOperationEventRecord.COMPRESSED_BYTE_LENGTH_WITH_CLAZZ_ID);
@@ -322,7 +321,7 @@ public class TCPReaderOneClient extends Thread implements IPeriodicTimeSignalRec
 			final String operation = stringRegistry.getStringFromId(operationId);
 
 			putInRingBuffer(new AfterOperationEventRecord(timestamp, traceId, orderIndex, objectId,
-					operation, hostApplicationMetadata, new RuntimeStatisticInformation()));
+					operation, hostApplicationMetadata));
 		} catch (final IdNotAvailableException e) {
 			putInWaitingMessages(buffer,
 					AfterOperationEventRecord.COMPRESSED_BYTE_LENGTH_WITH_CLAZZ_ID);
@@ -370,8 +369,7 @@ public class TCPReaderOneClient extends Thread implements IPeriodicTimeSignalRec
 			final String cause = stringRegistry.getStringFromId(causeId);
 
 			putInRingBuffer(new AfterFailedConstructorEventRecord(timestamp, traceId, orderIndex,
-					objectId, operation, cause, hostApplicationMetadata,
-					new RuntimeStatisticInformation()));
+					objectId, operation, cause, hostApplicationMetadata));
 		} catch (final IdNotAvailableException e) {
 			putInWaitingMessages(buffer,
 					AfterFailedConstructorEventRecord.COMPRESSED_BYTE_LENGTH_WITH_CLAZZ_ID);
@@ -389,7 +387,7 @@ public class TCPReaderOneClient extends Thread implements IPeriodicTimeSignalRec
 			final String operation = stringRegistry.getStringFromId(operationId);
 
 			putInRingBuffer(new AfterConstructorEventRecord(timestamp, traceId, orderIndex,
-					objectId, operation, hostApplicationMetadata, new RuntimeStatisticInformation()));
+					objectId, operation, hostApplicationMetadata));
 		} catch (final IdNotAvailableException e) {
 			putInWaitingMessages(buffer,
 					AfterConstructorEventRecord.COMPRESSED_BYTE_LENGTH_WITH_CLAZZ_ID);
@@ -426,8 +424,7 @@ public class TCPReaderOneClient extends Thread implements IPeriodicTimeSignalRec
 			final String cause = stringRegistry.getStringFromId(causeId);
 
 			putInRingBuffer(new AfterFailedStaticOperationEventRecord(timestamp, traceId,
-					orderIndex, operation, cause, hostApplicationMetadata,
-					new RuntimeStatisticInformation()));
+					orderIndex, operation, cause, hostApplicationMetadata));
 		} catch (final IdNotAvailableException e) {
 			putInWaitingMessages(buffer,
 					AfterFailedStaticOperationEventRecord.COMPRESSED_BYTE_LENGTH_WITH_CLAZZ_ID);
@@ -444,7 +441,7 @@ public class TCPReaderOneClient extends Thread implements IPeriodicTimeSignalRec
 			final String operation = stringRegistry.getStringFromId(operationId);
 
 			putInRingBuffer(new AfterStaticOperationEventRecord(timestamp, traceId, orderIndex,
-					operation, hostApplicationMetadata, new RuntimeStatisticInformation()));
+					operation, hostApplicationMetadata));
 		} catch (final IdNotAvailableException e) {
 			putInWaitingMessages(buffer,
 					AfterStaticOperationEventRecord.COMPRESSED_BYTE_LENGTH_WITH_CLAZZ_ID);