@@ -129,47 +129,47 @@ PropagationTags fromHeaderValue(PTagsFactory tagsFactory, String value) {
129
129
if (tagValueEndsAt == ddMemberValueEnd ) {
130
130
tagValueEndsAt = stripTrailingOWC (value , tagValuePos , tagValueEndsAt );
131
131
}
132
- TagKey tagKey = TagKey .from (Encoding .W3C , value , tagPos , tagKeyEndsAt );
133
- if (tagKey != null ) {
134
- TagValue tagValue = TagValue .from (Encoding .W3C , value , tagValuePos , tagValueEndsAt );
135
- if (!tagKey .equals (UPSTREAM_SERVICES_DEPRECATED_TAG )) {
136
- if (!validateTagValue (tagKey , tagValue )) {
137
- log .warn (
138
- "Invalid datadog tags header value: '{}' invalid tag value at {}" ,
139
- value ,
140
- tagValuePos );
141
- if (tagKey .equals (TRACE_ID_TAG )) {
142
- return tagsFactory .createInvalid (PROPAGATION_ERROR_MALFORMED_TID + tagValue );
132
+ int keyLength = tagKeyEndsAt - tagPos ;
133
+ char c = value .charAt (tagPos );
134
+ if (keyLength == 1 && c == 's' ) {
135
+ samplingPriority = validateSamplingPriority (value , tagValuePos , tagValueEndsAt );
136
+ } else if (keyLength == 1 && c == 'o' ) {
137
+ origin = TagValue .from (Encoding .W3C , value , tagValuePos , tagValueEndsAt );
138
+ } else if (keyLength == 1 && c == 'p' ) {
139
+ lastParentId = TagValue .from (Encoding .W3C , value , tagValuePos , tagValueEndsAt );
140
+ } else {
141
+ TagKey tagKey = TagKey .from (Encoding .W3C , value , tagPos , tagKeyEndsAt );
142
+ if (tagKey != null ) {
143
+ TagValue tagValue = TagValue .from (Encoding .W3C , value , tagValuePos , tagValueEndsAt );
144
+ if (!tagKey .equals (UPSTREAM_SERVICES_DEPRECATED_TAG )) {
145
+ if (!validateTagValue (tagKey , tagValue )) {
146
+ log .warn (
147
+ "Invalid datadog tags header value: '{}' invalid tag value at {}" ,
148
+ value ,
149
+ tagValuePos );
150
+ if (tagKey .equals (TRACE_ID_TAG )) {
151
+ return tagsFactory .createInvalid (PROPAGATION_ERROR_MALFORMED_TID + tagValue );
152
+ }
153
+ // TODO drop parts?
154
+ return empty (tagsFactory , value , firstMemberStart , ddMemberStart , ddMemberValueEnd );
143
155
}
144
- // TODO drop parts?
145
- return empty ( tagsFactory , value , firstMemberStart , ddMemberStart , ddMemberValueEnd ) ;
146
- }
147
- if ( tagKey . equals ( DECISION_MAKER_TAG )) {
148
- decisionMakerTagValue = tagValue ;
149
- } else if ( tagKey . equals ( TRACE_ID_TAG )) {
150
- traceIdTagValue = tagValue ;
151
- } else if (tagKey . equals ( TRACE_SOURCE_TAG ) ) {
152
- traceSource = ProductTraceSource . parseBitfieldHex ( tagValue . toString ());
153
- } else {
154
- if ( tagPairs == null ) {
155
- // This is roughly the size of a two element linked list but can hold six
156
- tagPairs = new ArrayList <>( 6 );
156
+ if ( tagKey . equals ( DECISION_MAKER_TAG )) {
157
+ decisionMakerTagValue = tagValue ;
158
+ } else if ( tagKey . equals ( TRACE_ID_TAG )) {
159
+ traceIdTagValue = tagValue ;
160
+ } else if ( tagKey . equals ( TRACE_SOURCE_TAG )) {
161
+ traceSource = ProductTraceSource . parseBitfieldHex ( tagValue . toString ());
162
+ } else {
163
+ if (tagPairs == null ) {
164
+ // This is roughly the size of a two element linked list but can hold six
165
+ tagPairs = new ArrayList <>( 6 );
166
+ }
167
+ tagPairs . add ( tagKey );
168
+ tagPairs . add ( tagValue );
157
169
}
158
- tagPairs .add (tagKey );
159
- tagPairs .add (tagValue );
160
170
}
161
- }
162
- } else {
163
- // This was not a propagating tag, so check if we know it
164
- int keyLength = tagKeyEndsAt - tagPos ;
165
- char c = value .charAt (tagPos );
166
- if (keyLength == 1 && c == 's' ) {
167
- samplingPriority = validateSamplingPriority (value , tagValuePos , tagValueEndsAt );
168
- } else if (keyLength == 1 && c == 'o' ) {
169
- origin = TagValue .from (Encoding .W3C , value , tagValuePos , tagValueEndsAt );
170
- } else if (keyLength == 1 && c == 'p' ) {
171
- lastParentId = TagValue .from (Encoding .W3C , value , tagValuePos , tagValueEndsAt );
172
171
} else {
172
+ // Not a propagating tag and not a known tag
173
173
if (maxUnknownSize != 0 ) {
174
174
maxUnknownSize ++; // delimiter
175
175
}
0 commit comments