Skip to content
Snippets Groups Projects
Commit 652eb69a authored by Florian Fittkau's avatar Florian Fittkau
Browse files

runtime for each host

parent 14a8964f
No related branches found
No related tags found
No related merge requests found
...@@ -9,6 +9,7 @@ import explorviz.live_trace_processing.record.event.AbstractBeforeOperationEvent ...@@ -9,6 +9,7 @@ import explorviz.live_trace_processing.record.event.AbstractBeforeOperationEvent
import explorviz.live_trace_processing.record.event.AbstractEventRecord; import explorviz.live_trace_processing.record.event.AbstractEventRecord;
import explorviz.live_trace_processing.record.misc.TerminateRecord; import explorviz.live_trace_processing.record.misc.TerminateRecord;
import explorviz.live_trace_processing.record.misc.TimedPeriodRecord; import explorviz.live_trace_processing.record.misc.TimedPeriodRecord;
import explorviz.live_trace_processing.record.trace.RuntimeStatisticInformation;
import explorviz.live_trace_processing.record.trace.Trace; import explorviz.live_trace_processing.record.trace.Trace;
public class RecordCountingFilter extends AbstractFilter { public class RecordCountingFilter extends AbstractFilter {
...@@ -36,8 +37,11 @@ public class RecordCountingFilter extends AbstractFilter { ...@@ -36,8 +37,11 @@ public class RecordCountingFilter extends AbstractFilter {
for (final AbstractEventRecord event : trace.getTraceEvents()) { for (final AbstractEventRecord event : trace.getTraceEvents()) {
if (event instanceof AbstractBeforeOperationEventRecord) { if (event instanceof AbstractBeforeOperationEventRecord) {
final AbstractBeforeOperationEventRecord abstractBeforeEventRecord = (AbstractBeforeOperationEventRecord) event; final AbstractBeforeOperationEventRecord abstractBeforeEventRecord = (AbstractBeforeOperationEventRecord) event;
counter.inputObjectsCount(abstractBeforeEventRecord
.getRuntimeStatisticInformation().getCount()); for (final RuntimeStatisticInformation runtime : abstractBeforeEventRecord
.getRuntimeStatisticInformationList()) {
counter.inputObjectsCount(runtime.getCount());
}
} }
} }
if (receiver != null) { if (receiver != null) {
......
...@@ -9,6 +9,7 @@ import explorviz.live_trace_processing.record.event.AbstractBeforeOperationEvent ...@@ -9,6 +9,7 @@ import explorviz.live_trace_processing.record.event.AbstractBeforeOperationEvent
import explorviz.live_trace_processing.record.event.AbstractEventRecord; import explorviz.live_trace_processing.record.event.AbstractEventRecord;
import explorviz.live_trace_processing.record.misc.TerminateRecord; import explorviz.live_trace_processing.record.misc.TerminateRecord;
import explorviz.live_trace_processing.record.misc.TimedPeriodRecord; import explorviz.live_trace_processing.record.misc.TimedPeriodRecord;
import explorviz.live_trace_processing.record.trace.RuntimeStatisticInformation;
import explorviz.live_trace_processing.record.trace.Trace; import explorviz.live_trace_processing.record.trace.Trace;
public class TraceCountingFilter extends AbstractFilter { public class TraceCountingFilter extends AbstractFilter {
...@@ -35,8 +36,10 @@ public class TraceCountingFilter extends AbstractFilter { ...@@ -35,8 +36,10 @@ public class TraceCountingFilter extends AbstractFilter {
final AbstractEventRecord abstractEventRecord = trace.getTraceEvents().get(0); final AbstractEventRecord abstractEventRecord = trace.getTraceEvents().get(0);
if (abstractEventRecord instanceof AbstractBeforeOperationEventRecord) { if (abstractEventRecord instanceof AbstractBeforeOperationEventRecord) {
final AbstractBeforeOperationEventRecord abstractBeforeOperationEventRecord = (AbstractBeforeOperationEventRecord) abstractEventRecord; final AbstractBeforeOperationEventRecord abstractBeforeOperationEventRecord = (AbstractBeforeOperationEventRecord) abstractEventRecord;
counter.inputObjectsCount(abstractBeforeOperationEventRecord for (final RuntimeStatisticInformation runtime : abstractBeforeOperationEventRecord
.getRuntimeStatisticInformation().getCount()); .getRuntimeStatisticInformationList()) {
counter.inputObjectsCount(runtime.getCount());
}
} }
} }
deliver(record); deliver(record);
......
...@@ -33,9 +33,11 @@ class TraceReconstructionBuffer { ...@@ -33,9 +33,11 @@ class TraceReconstructionBuffer {
if ((event instanceof AbstractBeforeEventRecord)) { if ((event instanceof AbstractBeforeEventRecord)) {
openEvents++; openEvents++;
final AbstractBeforeEventRecord beforeEvent = (AbstractBeforeEventRecord) event; final AbstractBeforeEventRecord beforeEvent = (AbstractBeforeEventRecord) event;
if (beforeEvent.getRuntimeStatisticInformation() == null) { if (beforeEvent.getRuntimeStatisticInformationList() == null) {
beforeEvent.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1, -1, final ArrayList<RuntimeStatisticInformation> runtime = new ArrayList<RuntimeStatisticInformation>(
-1)); 1);
runtime.add(new RuntimeStatisticInformation(1, -1, -1));
beforeEvent.setRuntimeStatisticInformationList(runtime);
} }
} else if ((event instanceof AbstractAfterFailedEventRecord) } else if ((event instanceof AbstractAfterFailedEventRecord)
|| (event instanceof AbstractAfterEventRecord)) { || (event instanceof AbstractAfterEventRecord)) {
...@@ -77,7 +79,7 @@ class TraceReconstructionBuffer { ...@@ -77,7 +79,7 @@ class TraceReconstructionBuffer {
return ((openEvents != 0) || events.isEmpty() || ((maxOrderIndex + 1) != events.size())); return ((openEvents != 0) || events.isEmpty() || ((maxOrderIndex + 1) != events.size()));
} }
public final Trace toTrace() { public final Trace toTrace(final boolean valid) {
final Stack<AbstractBeforeEventRecord> stack = new Stack<AbstractBeforeEventRecord>(); final Stack<AbstractBeforeEventRecord> stack = new Stack<AbstractBeforeEventRecord>();
boolean containsRemoteRecord = false; boolean containsRemoteRecord = false;
...@@ -90,27 +92,32 @@ class TraceReconstructionBuffer { ...@@ -90,27 +92,32 @@ class TraceReconstructionBuffer {
containsRemoteRecord = true; containsRemoteRecord = true;
} }
} else if (event instanceof AbstractAfterEventRecord) { } else if (event instanceof AbstractAfterEventRecord) {
final AbstractAfterEventRecord abstractAfterEventRecord = (AbstractAfterEventRecord) event; initRuntimeIfNeccessary(stack,
if (!stack.isEmpty()) { ((AbstractAfterEventRecord) event).getMethodDuration());
final AbstractBeforeEventRecord beforeEvent = stack.pop(); } else if (event instanceof AbstractAfterFailedEventRecord) {
initRuntimeIfNeccessary(stack,
if (beforeEvent.getRuntimeStatisticInformation().getAverage() < 0) { ((AbstractAfterFailedEventRecord) event).getMethodDuration());
final long time = abstractAfterEventRecord.getMethodDuration();
beforeEvent.getRuntimeStatisticInformation().set(1, time, time * time);
} }
} }
} else if (event instanceof AbstractAfterFailedEventRecord) { return new Trace(new ArrayList<AbstractEventRecord>(events), valid, containsRemoteRecord);
final AbstractAfterFailedEventRecord abstractAfterFailedEventRecord = (AbstractAfterFailedEventRecord) event; }
private void initRuntimeIfNeccessary(final Stack<AbstractBeforeEventRecord> stack,
final long methodDuration) {
if (!stack.isEmpty()) { if (!stack.isEmpty()) {
final AbstractBeforeEventRecord beforeEvent = stack.pop(); final AbstractBeforeEventRecord beforeEvent = stack.pop();
if (beforeEvent.getRuntimeStatisticInformation().getAverage() < 0) { final List<RuntimeStatisticInformation> runtimeStatisticInformationList = beforeEvent
final long time = abstractAfterFailedEventRecord.getMethodDuration(); .getRuntimeStatisticInformationList();
beforeEvent.getRuntimeStatisticInformation().set(1, time, time * time); if (runtimeStatisticInformationList.size() == 1) { // only on first
} // reconstruction
final RuntimeStatisticInformation runtimeStatisticInformation = runtimeStatisticInformationList
.get(0);
if (runtimeStatisticInformation.getAverage() < 0) {
runtimeStatisticInformation.set(1, methodDuration, methodDuration
* methodDuration);
} }
} }
} }
return new Trace(new ArrayList<AbstractEventRecord>(events), containsRemoteRecord);
} }
} }
package explorviz.live_trace_processing.filter.reconstruction; package explorviz.live_trace_processing.filter.reconstruction;
import java.util.Comparator;
import java.util.Iterator; import java.util.Iterator;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
...@@ -13,11 +14,14 @@ import explorviz.live_trace_processing.record.IRecord; ...@@ -13,11 +14,14 @@ import explorviz.live_trace_processing.record.IRecord;
import explorviz.live_trace_processing.record.event.AbstractEventRecord; import explorviz.live_trace_processing.record.event.AbstractEventRecord;
import explorviz.live_trace_processing.record.misc.TerminateRecord; import explorviz.live_trace_processing.record.misc.TerminateRecord;
import explorviz.live_trace_processing.record.misc.TimedPeriodRecord; import explorviz.live_trace_processing.record.misc.TimedPeriodRecord;
import explorviz.live_trace_processing.record.trace.HostApplicationMetaDataRecord;
import explorviz.live_trace_processing.record.trace.Trace;
public final class TraceReconstructionFilter extends AbstractFilter implements Runnable { public final class TraceReconstructionFilter extends AbstractFilter implements Runnable {
private final long maxTraceTimeout; private final long maxTraceTimeout;
private final Map<Long, TraceReconstructionBuffer> traceId2trace = new TreeMap<Long, TraceReconstructionBuffer>(); private final Map<AbstractEventRecord, TraceReconstructionBuffer> traceIdAndHost2trace = new TreeMap<AbstractEventRecord, TraceReconstructionBuffer>(
new TraceIdAndHostComperator());
private final PipesMerger<IRecord> traceReconstructionMerger; private final PipesMerger<IRecord> traceReconstructionMerger;
...@@ -36,16 +40,15 @@ public final class TraceReconstructionFilter extends AbstractFilter implements R ...@@ -36,16 +40,15 @@ public final class TraceReconstructionFilter extends AbstractFilter implements R
@Override @Override
public final void processRecord(final IRecord record) { public final void processRecord(final IRecord record) {
if (record instanceof AbstractEventRecord) { if (record instanceof AbstractEventRecord) {
final AbstractEventRecord abstractOperationEvent = ((AbstractEventRecord) record); final AbstractEventRecord abstractEvent = ((AbstractEventRecord) record);
final long traceId = abstractOperationEvent.getTraceId(); final TraceReconstructionBuffer traceBuffer = getBufferForRecord(abstractEvent);
final TraceReconstructionBuffer traceBuffer = getBufferForTraceId(abstractOperationEvent traceBuffer.insertEvent(abstractEvent);
.getTraceId());
traceBuffer.insertEvent(abstractOperationEvent);
if (traceBuffer.isFinished()) { if (traceBuffer.isFinished()) {
deliver(traceBuffer.toTrace()); final Trace trace = traceBuffer.toTrace(true);
traceId2trace.remove(traceId); traceIdAndHost2trace.remove(trace.getTraceEvents().get(0));
deliver(traceBuffer.toTrace(true));
} }
} else if (record instanceof TimedPeriodRecord) { } else if (record instanceof TimedPeriodRecord) {
checkForTimeouts(TimeProvider.getCurrentTimestamp()); checkForTimeouts(TimeProvider.getCurrentTimestamp());
...@@ -58,11 +61,11 @@ public final class TraceReconstructionFilter extends AbstractFilter implements R ...@@ -58,11 +61,11 @@ public final class TraceReconstructionFilter extends AbstractFilter implements R
} }
} }
private final TraceReconstructionBuffer getBufferForTraceId(final long traceId) { private final TraceReconstructionBuffer getBufferForRecord(final AbstractEventRecord record) {
TraceReconstructionBuffer traceBuffer = traceId2trace.get(traceId); TraceReconstructionBuffer traceBuffer = traceIdAndHost2trace.get(record);
if (traceBuffer == null) { if (traceBuffer == null) {
traceBuffer = new TraceReconstructionBuffer(); traceBuffer = new TraceReconstructionBuffer();
traceId2trace.put(traceId, traceBuffer); traceIdAndHost2trace.put(record, traceBuffer);
} }
return traceBuffer; return traceBuffer;
} }
...@@ -70,11 +73,11 @@ public final class TraceReconstructionFilter extends AbstractFilter implements R ...@@ -70,11 +73,11 @@ public final class TraceReconstructionFilter extends AbstractFilter implements R
private void checkForTimeouts(final long timestamp) { private void checkForTimeouts(final long timestamp) {
final long traceTimeout = timestamp - maxTraceTimeout; final long traceTimeout = timestamp - maxTraceTimeout;
final Iterator<Entry<Long, TraceReconstructionBuffer>> iterator = traceId2trace.entrySet() final Iterator<Entry<AbstractEventRecord, TraceReconstructionBuffer>> iterator = traceIdAndHost2trace
.iterator(); .entrySet().iterator();
while (iterator.hasNext()) { while (iterator.hasNext()) {
final Entry<Long, TraceReconstructionBuffer> entry = iterator.next(); final Entry<AbstractEventRecord, TraceReconstructionBuffer> entry = iterator.next();
final TraceReconstructionBuffer traceBuffer = entry.getValue(); final TraceReconstructionBuffer traceBuffer = entry.getValue();
if (traceBuffer.isUpdatedInThisPeriod()) { if (traceBuffer.isUpdatedInThisPeriod()) {
traceBuffer.setUpdatedInThisPeriod(false); traceBuffer.setUpdatedInThisPeriod(false);
...@@ -82,7 +85,7 @@ public final class TraceReconstructionFilter extends AbstractFilter implements R ...@@ -82,7 +85,7 @@ public final class TraceReconstructionFilter extends AbstractFilter implements R
traceBuffer.updateLastBufferInsert(); traceBuffer.updateLastBufferInsert();
if ((timestamp - traceBuffer.getLastBufferInsert()) <= traceTimeout) { if ((timestamp - traceBuffer.getLastBufferInsert()) <= traceTimeout) {
deliver(traceBuffer.toTrace()); deliver(traceBuffer.toTrace(false));
iterator.remove(); iterator.remove();
} }
} }
...@@ -90,9 +93,42 @@ public final class TraceReconstructionFilter extends AbstractFilter implements R ...@@ -90,9 +93,42 @@ public final class TraceReconstructionFilter extends AbstractFilter implements R
} }
private void terminate() { private void terminate() {
for (final TraceReconstructionBuffer entry : traceId2trace.values()) { for (final TraceReconstructionBuffer entry : traceIdAndHost2trace.values()) {
deliver(entry.toTrace()); deliver(entry.toTrace(false));
} }
traceId2trace.clear(); traceIdAndHost2trace.clear();
}
}
class TraceIdAndHostComperator implements Comparator<AbstractEventRecord> {
@Override
public int compare(final AbstractEventRecord o1, final AbstractEventRecord o2) {
final long cmpTraceId = o1.getTraceId() - o2.getTraceId();
if (cmpTraceId != 0) {
return (int) cmpTraceId;
}
final int cmpHostLength = o1.getHostApplicationMetadataList().size()
- o2.getHostApplicationMetadataList().size();
if (cmpHostLength != 0) {
return cmpHostLength;
}
for (final HostApplicationMetaDataRecord hostMeta1 : o1.getHostApplicationMetadataList()) {
boolean foundMatch = false;
for (final HostApplicationMetaDataRecord hostMeta2 : o2
.getHostApplicationMetadataList()) {
if (hostMeta1.equals(hostMeta2)) {
foundMatch = true;
break;
}
}
if (!foundMatch) {
return -1;
}
}
return 0;
} }
} }
package explorviz.live_trace_processing.filter.reduction; package explorviz.live_trace_processing.filter.reduction;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map.Entry;
import explorviz.live_trace_processing.record.event.AbstractBeforeEventRecord; import explorviz.live_trace_processing.record.event.AbstractBeforeEventRecord;
import explorviz.live_trace_processing.record.event.AbstractBeforeOperationEventRecord; import explorviz.live_trace_processing.record.event.AbstractBeforeOperationEventRecord;
import explorviz.live_trace_processing.record.event.AbstractEventRecord; import explorviz.live_trace_processing.record.event.AbstractEventRecord;
import explorviz.live_trace_processing.record.trace.HostApplicationMetaDataRecord;
import explorviz.live_trace_processing.record.trace.RuntimeStatisticInformation;
import explorviz.live_trace_processing.record.trace.Trace; import explorviz.live_trace_processing.record.trace.Trace;
class TracesSummarizationBuffer { class TracesSummarizationBuffer {
...@@ -34,26 +39,89 @@ class TracesSummarizationBuffer { ...@@ -34,26 +39,89 @@ class TracesSummarizationBuffer {
final AbstractEventRecord event = aggregatedRecords.get(i); final AbstractEventRecord event = aggregatedRecords.get(i);
final AbstractEventRecord event2 = records.get(i); final AbstractEventRecord event2 = records.get(i);
event.getHostApplicationMetadataList().addAll(
event2.getHostApplicationMetadataList());
if (event instanceof AbstractBeforeEventRecord) { if (event instanceof AbstractBeforeEventRecord) {
final AbstractBeforeEventRecord abstractBeforeEventRecord = (AbstractBeforeEventRecord) event; final AbstractBeforeEventRecord abstractBeforeEventRecord = (AbstractBeforeEventRecord) event;
final AbstractBeforeEventRecord abstractBeforeEventRecord2 = (AbstractBeforeEventRecord) event2; final AbstractBeforeEventRecord abstractBeforeEventRecord2 = (AbstractBeforeEventRecord) event2;
if (abstractBeforeEventRecord2 instanceof AbstractBeforeOperationEventRecord) { final List<HostApplicationMetaDataRecord> hostMetaList1 = event
final AbstractBeforeOperationEventRecord abstractBeforeOperationEventRecord = (AbstractBeforeOperationEventRecord) abstractBeforeEventRecord2; .getHostApplicationMetadataList();
abstractBeforeEventRecord final List<HostApplicationMetaDataRecord> hostMetaList2 = event2
.getRuntimeStatisticInformation() .getHostApplicationMetadataList();
.merge(abstractBeforeOperationEventRecord
.getRuntimeStatisticInformation(), final List<RuntimeStatisticInformation> runtimeList1 = abstractBeforeEventRecord
abstractBeforeOperationEventRecord.getObjectId()); .getRuntimeStatisticInformationList();
final List<RuntimeStatisticInformation> runtimeList2 = abstractBeforeEventRecord2
.getRuntimeStatisticInformationList();
final HashMap<HostApplicationMetaDataRecord, RuntimeStatisticInformation> toAdd = new HashMap<HostApplicationMetaDataRecord, RuntimeStatisticInformation>();
for (int j = 0; j < hostMetaList2.size(); j++) {
final HostApplicationMetaDataRecord host2 = hostMetaList2.get(j);
final int indexInHostList1 = indexOfHost(host2, hostMetaList1);
if (indexInHostList1 >= 0) {
// found, so merge the entries
final RuntimeStatisticInformation runtime1 = runtimeList1
.get(indexInHostList1);
final RuntimeStatisticInformation runtime2 = runtimeList2.get(j);
if ((runtimeList1.size() == 1) && (runtimeList2.size() == 1)) {
runtime1.merge(runtime2,
getRightObjectId(abstractBeforeEventRecord2));
} else { } else {
abstractBeforeEventRecord.getRuntimeStatisticInformation().merge( runtime1.merge(runtime2);
abstractBeforeEventRecord2.getRuntimeStatisticInformation(), 0);
} }
} else {
// not found, so insert and merge later
toAdd.put(host2, runtimeList2.get(j));
System.out.println("not found...");
} }
} }
for (final Entry<HostApplicationMetaDataRecord, RuntimeStatisticInformation> entry : toAdd
.entrySet()) {
hostMetaList1.add(entry.getKey());
runtimeList1.add(entry.getValue());
}
} else {
final List<HostApplicationMetaDataRecord> hostMetaList1 = event
.getHostApplicationMetadataList();
final List<HostApplicationMetaDataRecord> hostMetaList2 = event2
.getHostApplicationMetadataList();
final List<HostApplicationMetaDataRecord> toAdd = new ArrayList<HostApplicationMetaDataRecord>(
2);
for (int j = 0; j < hostMetaList2.size(); j++) {
final int indexInHostList1 = indexOfHost(hostMetaList2.get(j),
hostMetaList1);
if (indexInHostList1 == -1) {
// not found, so insert later
toAdd.add(hostMetaList2.get(j));
}
}
hostMetaList1.addAll(toAdd);
}
}
}
}
private int indexOfHost(final HostApplicationMetaDataRecord hostToSeek,
final List<HostApplicationMetaDataRecord> hostMetaList) {
for (int i = 0; i < hostMetaList.size(); i++) {
if (hostMetaList.get(i).equals(hostToSeek)) {
return i;
}
}
return -1;
}
private int getRightObjectId(final AbstractBeforeEventRecord abstractBeforeEventRecord2) {
int objectId = 0;
if (abstractBeforeEventRecord2 instanceof AbstractBeforeOperationEventRecord) {
objectId = ((AbstractBeforeOperationEventRecord) abstractBeforeEventRecord2)
.getObjectId();
} }
return objectId;
} }
} }
\ No newline at end of file
...@@ -16,6 +16,7 @@ import explorviz.live_trace_processing.record.event.AbstractBeforeOperationEvent ...@@ -16,6 +16,7 @@ import explorviz.live_trace_processing.record.event.AbstractBeforeOperationEvent
import explorviz.live_trace_processing.record.event.AbstractEventRecord; import explorviz.live_trace_processing.record.event.AbstractEventRecord;
import explorviz.live_trace_processing.record.misc.TerminateRecord; import explorviz.live_trace_processing.record.misc.TerminateRecord;
import explorviz.live_trace_processing.record.misc.TimedPeriodRecord; import explorviz.live_trace_processing.record.misc.TimedPeriodRecord;
import explorviz.live_trace_processing.record.trace.RuntimeStatisticInformation;
import explorviz.live_trace_processing.record.trace.Trace; import explorviz.live_trace_processing.record.trace.Trace;
import explorviz.live_trace_processing.record.trace.TraceComperator; import explorviz.live_trace_processing.record.trace.TraceComperator;
...@@ -45,10 +46,10 @@ public class TracesSummarizationFilter extends AbstractFilter { ...@@ -45,10 +46,10 @@ public class TracesSummarizationFilter extends AbstractFilter {
if (record instanceof Trace) { if (record instanceof Trace) {
final Trace trace = (Trace) record; final Trace trace = (Trace) record;
if (!trace.containsRemoteRecord()) { if (!trace.containsRemoteRecord() && trace.isValid()) {
insertIntoBuffer(trace); insertIntoBuffer(trace);
} else { } else {
// trace with remote records cant be reduced // trace with remote records or invalid trace cant be reduced
makeTraceElementsAccumulator(trace); makeTraceElementsAccumulator(trace);
deliver(trace); deliver(trace);
} }
...@@ -82,14 +83,17 @@ public class TracesSummarizationFilter extends AbstractFilter { ...@@ -82,14 +83,17 @@ public class TracesSummarizationFilter extends AbstractFilter {
if (event instanceof AbstractBeforeEventRecord) { if (event instanceof AbstractBeforeEventRecord) {
final AbstractBeforeEventRecord abstractBeforeEventRecord = (AbstractBeforeEventRecord) event; final AbstractBeforeEventRecord abstractBeforeEventRecord = (AbstractBeforeEventRecord) event;
int objectId = 0;
if (abstractBeforeEventRecord instanceof AbstractBeforeOperationEventRecord) { if (abstractBeforeEventRecord instanceof AbstractBeforeOperationEventRecord) {
final AbstractBeforeOperationEventRecord abstractBeforeOperationEventRecord = (AbstractBeforeOperationEventRecord) abstractBeforeEventRecord; final AbstractBeforeOperationEventRecord abstractBeforeOperationEventRecord = (AbstractBeforeOperationEventRecord) abstractBeforeEventRecord;
objectId = abstractBeforeOperationEventRecord.getObjectId();
}
abstractBeforeOperationEventRecord.getRuntimeStatisticInformation() final List<RuntimeStatisticInformation> runtimeStatisticInformationList = abstractBeforeEventRecord
.makeAccumulator(abstractBeforeOperationEventRecord.getObjectId()); .getRuntimeStatisticInformationList();
} else { if (runtimeStatisticInformationList.size() == 1) {
abstractBeforeEventRecord.getRuntimeStatisticInformation().makeAccumulator(0); runtimeStatisticInformationList.get(0).makeAccumulator(objectId);
} }
} }
} }
......
...@@ -284,7 +284,9 @@ class TCPReaderOneClient extends Thread { ...@@ -284,7 +284,9 @@ class TCPReaderOneClient extends Thread {
if (buffer.remaining() >= recordSize) { if (buffer.remaining() >= recordSize) {
try { try {
putInQueue(new BeforeOperationEventRecord(buffer, stringRegistry)); final BeforeOperationEventRecord beforeOperationEventRecord = new BeforeOperationEventRecord(
buffer, stringRegistry);
putInQueue(beforeOperationEventRecord);
} catch (final IdNotAvailableException e) { } catch (final IdNotAvailableException e) {
// should not happen // should not happen
e.printStackTrace(); e.printStackTrace();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment