static <T extends Comparable<T>> int nullSafeCompareTo(T left, T right) {
    if (left == null) {
      return (right == null) ? 0 : 1;
    } else if (right == null) {
      return -1;
    } else {
      return left.compareTo(right);
    }
  }
Put spans with null endpoints first, so that their data can be attached to the first span with
the same ID and endpoint. It is possible that a server can get the same request on a different
port. Not addressing this.
zipkin/src/main/java/zipkin2/internal/Trace.java