aboutsummaryrefslogtreecommitdiffstats
path: root/contrib
diff options
context:
space:
mode:
authorRicardo Lindooren <rlindooren@users.noreply.github.com>2018-01-23 16:16:41 +0100
committerBogdan Drutu <bdrutu@google.com>2018-01-23 07:16:41 -0800
commit765318b5ec65fa840961ecc12d8e3683a861ccec (patch)
tree5a2cdda5f38ac53cd2685c7490bc054f436bfa9a /contrib
parente3dd2eccb7cb1ac386c2ceb939f644b6f39694ee (diff)
downloadplatform_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.java2
-rw-r--r--contrib/http_util/src/test/java/io/opencensus/contrib/http/util/CloudTraceFormatTest.java12
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));
+ }
}