@Test protected void getTraces_absentWhenNoTimestamp(TestInfo testInfo) throws Exception {
    String testSuffix = testSuffix(testInfo);
    Span span = spanBuilder(testSuffix).build();
    Span spanWithoutTimestamp = span.toBuilder().timestamp(0L).duration(0L).build();

    // Index the service name but no timestamp of any sort
    accept(spanWithoutTimestamp);

    assertGetTracesReturnsEmpty(
      requestBuilder().serviceName(span.localServiceName()).build());

    assertGetTracesReturnsEmpty(
      requestBuilder().serviceName(span.localServiceName())
        .spanName(span.remoteServiceName())
        .build());

    assertGetTracesReturnsEmpty(
      requestBuilder().serviceName(span.localServiceName())
        .spanName(span.name())
        .build());

    // now store the timestamped span
    accept(span);

    assertGetTracesReturns(
      requestBuilder().serviceName(span.localServiceName()).build(),
      List.of(spanWithoutTimestamp, span));

    assertGetTracesReturns(
      requestBuilder()
        .serviceName(span.localServiceName())
        .remoteServiceName(span.remoteServiceName())
        .build(),
      List.of(spanWithoutTimestamp, span));

    assertGetTracesReturns(
      requestBuilder()
        .serviceName(span.localServiceName())
        .spanName(span.name())
        .build(),
      List.of(spanWithoutTimestamp, span));
  }
Spans and traces are meaningless unless they have a timestamp. While unlikely, this could
happen if a binary annotation is logged before a timestamped one is.
zipkin-tests/src/main/java/zipkin2/storage/ITSpanStore.java