diff --git a/src/main/java/com/nhn/hippo/web/calltree/span/SpanAligner2.java b/src/main/java/com/nhn/hippo/web/calltree/span/SpanAligner2.java index 09ba8414d..c6243ad2b 100644 --- a/src/main/java/com/nhn/hippo/web/calltree/span/SpanAligner2.java +++ b/src/main/java/com/nhn/hippo/web/calltree/span/SpanAligner2.java @@ -5,9 +5,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import com.profiler.common.bo.SpanBo; import com.profiler.common.bo.SubSpanBo; @@ -18,10 +15,8 @@ import com.profiler.common.bo.SubSpanBo; */ public class SpanAligner2 { - private final Logger logger = LoggerFactory.getLogger(this.getClass()); - private final Map spanMap; - private Long rootSpanId; + private Long rootSpanId = null; public SpanAligner2(List spans) { spanMap = new HashMap(spans.size()); @@ -33,12 +28,15 @@ public class SpanAligner2 { throw new IllegalStateException("duplicated spanId. id:" + span.getSpanId()); } - if (span.getStartTime() < rootSpanStartTime) { + if (span.getParentSpanId() == -1L) { + rootSpanId = -1L; + spanMap.put(-1L, span); + continue; + } else if (rootSpanId != -1 && span.getStartTime() < rootSpanStartTime) { rootSpanId = (span.getParentSpanId() == -1) ? -1L : span.getSpanId(); rootSpanStartTime = span.getStartTime(); } - - this.spanMap.put((span.getParentSpanId() == -1) ? -1L : span.getSpanId(), span); + spanMap.put(span.getSpanId(), span); } }