Skip to content

Commit 5facbfd

Browse files
committed
Fixing issues with dropping baggage when TracePropagationBehaviorExtract = IGNORE
1 parent d6d3d21 commit 5facbfd

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

dd-trace-core/src/main/java/datadog/trace/core/baggage/BaggagePropagator.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package datadog.trace.core.baggage;
22

3+
import static datadog.trace.api.TracePropagationBehaviorExtract.IGNORE;
34
import static java.util.Collections.emptyMap;
45

56
import datadog.context.Context;
67
import datadog.context.propagation.CarrierSetter;
78
import datadog.context.propagation.CarrierVisitor;
89
import datadog.context.propagation.Propagator;
910
import datadog.trace.api.Config;
11+
import datadog.trace.api.TracePropagationBehaviorExtract;
1012
import datadog.trace.bootstrap.instrumentation.api.Baggage;
1113
import datadog.trace.core.util.PercentEscaper;
1214
import datadog.trace.core.util.PercentEscaper.Escaped;
@@ -28,21 +30,29 @@ public class BaggagePropagator implements Propagator {
2830
private final boolean extractBaggage;
2931
private final int maxItems;
3032
private final int maxBytes;
33+
private final TracePropagationBehaviorExtract behaviorExtract;
3134

3235
public BaggagePropagator(Config config) {
3336
this(
3437
config.isBaggageInject(),
3538
config.isBaggageInject(),
3639
config.getTraceBaggageMaxItems(),
37-
config.getTraceBaggageMaxBytes());
40+
config.getTraceBaggageMaxBytes(),
41+
config.getTracePropagationBehaviorExtract());
3842
}
3943

4044
// use primarily for testing purposes
41-
BaggagePropagator(boolean injectBaggage, boolean extractBaggage, int maxItems, int maxBytes) {
45+
BaggagePropagator(
46+
boolean injectBaggage,
47+
boolean extractBaggage,
48+
int maxItems,
49+
int maxBytes,
50+
TracePropagationBehaviorExtract behaviorExtract) {
4251
this.injectBaggage = injectBaggage;
4352
this.extractBaggage = extractBaggage;
4453
this.maxItems = maxItems;
4554
this.maxBytes = maxBytes;
55+
this.behaviorExtract = behaviorExtract;
4656
}
4757

4858
@Override
@@ -104,7 +114,11 @@ public <C> void inject(Context context, C carrier, CarrierSetter<C> setter) {
104114

105115
@Override
106116
public <C> Context extract(Context context, C carrier, CarrierVisitor<C> visitor) {
107-
if (!this.extractBaggage || context == null || carrier == null || visitor == null) {
117+
if (!this.extractBaggage
118+
|| this.behaviorExtract == IGNORE
119+
|| context == null
120+
|| carrier == null
121+
|| visitor == null) {
108122
return context;
109123
}
110124
BaggageExtractor baggageExtractor = new BaggageExtractor();

0 commit comments

Comments
 (0)