public Builder traceId(long high, long low) {
      if (high == 0L && low == 0L) throw new IllegalArgumentException("empty trace ID");
      char[] data = RecyclableBuffers.shortStringBuffer();
      int pos = 0;
      if (high != 0L) {
        writeHexLong(data, pos, high);
        pos += 16;
      }
      writeHexLong(data, pos, low);
      this.traceId = new String(data, 0, high != 0L ? 32 : 16);
      return this;
    }
Encodes 64 or 128 bits from the input into a hex trace ID.

@param high Upper 64bits of the trace ID. Zero means the trace ID is 64-bit.
@param low Lower 64bits of the trace ID.
@throws IllegalArgumentException if both values are zero
zipkin/src/main/java/zipkin2/Span.java