@Override public int hashCode() {
      int result = 1;
      result *= 1000003;
      result ^= id.hashCode();
      result *= 1000003;
      result ^= (endpoint == null) ? 0 : endpoint.hashCode();
      return result;
    }
A span in the tree is not always unique on ID. Sharing is allowed once per ID (Ex: in RPC).
However, it is possible in a retry scenario for accidental duplicate ID sharing to occur
zipkin/src/main/java/zipkin2/internal/SpanNode.java