private CallTree selectFirstSpan(NodeList topNodeList) {
        final Node node = topNodeList.get(0);
        if (node.getSpanCallTree().isRootSpan()) {
            logger.info("Select root span in top node list");

            traceState.complete();
            return node.getSpanCallTree();
        }

        logger.info("Select span in top node list, not found root span");

        CallTree rootCallTree = this.metaSpanCallTreeFactory.unknown(node.getSpanBo().getStartTime());
        rootCallTree.add(node.getSpanCallTree());
        traceState.progress();
        return rootCallTree;
    }
@author netspider
@author emeroad
@author jaehong.kim
web/src/main/java/com/navercorp/pinpoint/web/calltree/span/SpanAligner.java