@Test void traceRoundTrip_PROTO3_heapBufferOffset() {
    byte[] message = SpanBytesEncoder.PROTO3.encodeList(TRACE);
    byte[] array = new byte[message.length + 4 + 5];
    System.arraycopy(message, 0, array, 4, message.length);
    ByteBuffer buf = ByteBuffer.wrap(array, 4, message.length);

    assertThat(SpanBytesDecoder.PROTO3.decodeList(buf)).isEqualTo(TRACE);
  }
Particular, thrift can mistake malformed content as a huge list. Let's not blow up.
zipkin/src/test/java/zipkin2/codec/SpanBytesDecoderTest.java