diff --git a/src/main/java/kieker/analysis/stage/tracediagnosis/OperationCallAggregator.java b/src/main/java/kieker/analysis/stage/tracediagnosis/OperationCallAggregator.java index abdeb19507ebd3d9be69a992c83e39f9afe1721c..3a35e4f5384d99714d9f590e6e8e531ac3545383 100644 --- a/src/main/java/kieker/analysis/stage/tracediagnosis/OperationCallAggregator.java +++ b/src/main/java/kieker/analysis/stage/tracediagnosis/OperationCallAggregator.java @@ -37,7 +37,7 @@ public final class OperationCallAggregator extends AbstractTransformation<Operat @Override protected void execute(final OperationCall call) { - final String key = call.getContainer() + "," + call.getComponent() + "," + call.getOperation() + ", " + call.getFailedCause(); + final String key = call.getIdentifier(); if (!this.aggregationMap.containsKey(key)) { final List<OperationCall> aggregationList = new ArrayList<>(); diff --git a/src/main/java/kieker/analysis/traceanalysisdomain/AbstractOperationCall.java b/src/main/java/kieker/analysis/traceanalysisdomain/AbstractOperationCall.java index 28ea68403d68c9cf6ac177192d5b60fa1f589ee7..d5716dc9882deca1f8376496cf3802c53be9fdab 100644 --- a/src/main/java/kieker/analysis/traceanalysisdomain/AbstractOperationCall.java +++ b/src/main/java/kieker/analysis/traceanalysisdomain/AbstractOperationCall.java @@ -39,6 +39,8 @@ public abstract class AbstractOperationCall<T extends AbstractOperationCall<T>> private final String component; private final String operation; + private final String identifier; + private int stackDepth; private int stackSize; private String failedCause; @@ -55,6 +57,8 @@ public abstract class AbstractOperationCall<T extends AbstractOperationCall<T>> this.operation = operation.intern(); this.orderIndex = orderIndex; this.failedCause = (failedCause != null) ? failedCause.intern() : null; + + this.identifier = container + ',' + component + ',' + operation; } public void addChild(final T child) { @@ -115,6 +119,14 @@ public abstract class AbstractOperationCall<T extends AbstractOperationCall<T>> return this.isFailed() || this.children.parallelStream().anyMatch(T::containsFailure); } + public String getIdentifier() { + return identifier; + } + + public String getIdentifierWithFailure() { + return identifier + ',' + failedCause; + } + public final int calculateHashCode() { final int prime = 31; int result = 1;