diff --git a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/mapper/CallChainMapper.java b/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/mapper/CallChainMapper.java index 48a3285ee..c9fca6601 100644 --- a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/mapper/CallChainMapper.java +++ b/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/mapper/CallChainMapper.java @@ -101,21 +101,11 @@ public class CallChainMapper extends TableMapper { Map spanEntryMap = new HashMap(); for (Span span : spanList) { SpanEntry spanEntry = spanEntryMap.get(span.getParentLevel() + "." + span.getLevelId()); - if (spanEntry != null && span.isReceiver()) { - if (span.isReceiver()) { - spanEntry.setServerSpan(span); - } else { - spanEntry.setClientSpan(span); - } - } else { + if (spanEntry == null) { spanEntry = new SpanEntry(); - if (span.isReceiver()) { - spanEntry.setServerSpan(span); - } else { - spanEntry.setClientSpan(span); - } spanEntryMap.put(span.getParentLevel() + "." + span.getLevelId(), spanEntry); } + spanEntry.setSpan(span); } return spanEntryMap; } diff --git a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/model/SpanEntry.java b/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/model/SpanEntry.java index ea40cbafd..b9e645dec 100644 --- a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/model/SpanEntry.java +++ b/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/model/SpanEntry.java @@ -132,13 +132,13 @@ public class SpanEntry { public Span getServerSpan() { return serverSpan; } - - public void setClientSpan(Span clientSpan) { - this.clientSpan = clientSpan; - } - - public void setServerSpan(Span serverSpan) { - this.serverSpan = serverSpan; + + public void setSpan(Span span){ + if (span.isReceiver()) { + this.serverSpan = span; + }else{ + this.clientSpan = span; + } } public String getSpanType() { diff --git a/skywalking-analysis/src/test/java/com/ai/cloud/skywalking/analysis/mapper/CallChainMapperTest.java b/skywalking-analysis/src/test/java/com/ai/cloud/skywalking/analysis/mapper/CallChainMapperTest.java index f9b190ce7..4a8515b6a 100644 --- a/skywalking-analysis/src/test/java/com/ai/cloud/skywalking/analysis/mapper/CallChainMapperTest.java +++ b/skywalking-analysis/src/test/java/com/ai/cloud/skywalking/analysis/mapper/CallChainMapperTest.java @@ -108,21 +108,11 @@ public class CallChainMapperTest { Map spanEntryMap = new HashMap(); for (Span span : spanList) { SpanEntry spanEntry = spanEntryMap.get(span.getParentLevel() + "." + span.getLevelId()); - if (spanEntry != null && span.isReceiver()) { - if (span.isReceiver()) { - spanEntry.setServerSpan(span); - } else { - spanEntry.setClientSpan(span); - } - } else { + if (spanEntry == null) { spanEntry = new SpanEntry(); - if (span.isReceiver()) { - spanEntry.setServerSpan(span); - } else { - spanEntry.setClientSpan(span); - } spanEntryMap.put(span.getParentLevel() + "." + span.getLevelId(), spanEntry); } + spanEntry.setSpan(span); } return spanEntryMap; }