diff options
| author | Ricardo Lindooren <rlindooren@users.noreply.github.com> | 2018-01-23 16:16:41 +0100 |
|---|---|---|
| committer | Bogdan Drutu <bdrutu@google.com> | 2018-01-23 07:16:41 -0800 |
| commit | 765318b5ec65fa840961ecc12d8e3683a861ccec (patch) | |
| tree | 5a2cdda5f38ac53cd2685c7490bc054f436bfa9a /contrib | |
| parent | e3dd2eccb7cb1ac386c2ceb939f644b6f39694ee (diff) | |
| download | platform_external_opencensus-java-765318b5ec65fa840961ecc12d8e3683a861ccec.tar.gz platform_external_opencensus-java-765318b5ec65fa840961ecc12d8e3683a861ccec.tar.bz2 platform_external_opencensus-java-765318b5ec65fa840961ecc12d8e3683a861ccec.zip | |
Fixed bug that made it impossible to use short span id's (#950)
Diffstat (limited to 'contrib')
| -rw-r--r-- | contrib/http_util/src/main/java/io/opencensus/contrib/http/util/CloudTraceFormat.java | 2 | ||||
| -rw-r--r-- | contrib/http_util/src/test/java/io/opencensus/contrib/http/util/CloudTraceFormatTest.java | 12 |
2 files changed, 13 insertions, 1 deletions
diff --git a/contrib/http_util/src/main/java/io/opencensus/contrib/http/util/CloudTraceFormat.java b/contrib/http_util/src/main/java/io/opencensus/contrib/http/util/CloudTraceFormat.java index 48b27b4b..a6acc985 100644 --- a/contrib/http_util/src/main/java/io/opencensus/contrib/http/util/CloudTraceFormat.java +++ b/contrib/http_util/src/main/java/io/opencensus/contrib/http/util/CloudTraceFormat.java @@ -107,7 +107,7 @@ final class CloudTraceFormat extends TextFormat { checkArgument(headerStr.charAt(TRACE_ID_SIZE) == SPAN_ID_DELIMITER, "Invalid TRACE_ID size"); TraceId traceId = TraceId.fromLowerBase16(headerStr.subSequence(0, TRACE_ID_SIZE)); - int traceOptionsPos = headerStr.indexOf(TRACE_OPTION_DELIMITER, SPAN_ID_DELIMITER); + int traceOptionsPos = headerStr.indexOf(TRACE_OPTION_DELIMITER, TRACE_ID_SIZE); CharSequence spanIdStr = headerStr.subSequence( SPAN_ID_START_POS, traceOptionsPos < 0 ? headerStr.length() : traceOptionsPos); diff --git a/contrib/http_util/src/test/java/io/opencensus/contrib/http/util/CloudTraceFormatTest.java b/contrib/http_util/src/test/java/io/opencensus/contrib/http/util/CloudTraceFormatTest.java index 6d54ef10..197a9863 100644 --- a/contrib/http_util/src/test/java/io/opencensus/contrib/http/util/CloudTraceFormatTest.java +++ b/contrib/http_util/src/test/java/io/opencensus/contrib/http/util/CloudTraceFormatTest.java @@ -31,6 +31,7 @@ import io.opencensus.trace.TraceOptions; import io.opencensus.trace.propagation.SpanContextParseException; import io.opencensus.trace.propagation.TextFormat.Getter; import io.opencensus.trace.propagation.TextFormat.Setter; +import java.nio.ByteBuffer; import java.util.HashMap; import java.util.Map; import javax.annotation.Nullable; @@ -280,4 +281,15 @@ public final class CloudTraceFormatTest { public void fieldsShouldMatch() { assertThat(cloudTraceFormat.fields()).containsExactly(HEADER_NAME); } + + @Test + public void parseWithShortSpanIdAndSamplingShouldSucceed() throws SpanContextParseException { + final String spanId = "1"; + ByteBuffer buffer = ByteBuffer.allocate(SpanId.SIZE); + buffer.putLong(Long.valueOf(spanId)); + SpanId expectedSpanId = SpanId.fromBytes(buffer.array()); + parseSuccess( + constructHeader(TRACE_ID_BASE16, spanId, SAMPLED), + SpanContext.create(TRACE_ID, expectedSpanId, TRACE_OPTIONS_SAMPLED)); + } } |
