@Override public long read(Buffer sink, long byteCount) {
      try (Buffer.UnsafeCursor ignored = sink.readAndWriteUnsafe(cursor)) {
        long oldSize = sink.size();
        int length = (int) Math.min(source.remaining(), Math.min(8192, byteCount));
        if (length == 0) return -1;
        cursor.expandBuffer(length);
        source.get(cursor.data, cursor.start, length);
        cursor.resizeBuffer(oldSize + length);
        return length;
      }
    }
Read-only json adapters resurrected from before we switched to Java 6 as storage components can
be Java 7+
benchmarks/src/test/java/zipkin2/codec/MoshiSpanDecoder.java