Skip to content

Commit 5ab30b2

Browse files
authored
Create new header map per thrift request (#181)
1 parent 5d583df commit 5ab30b2

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

Diff for: src/main/java/com/uber/cadence/serviceclient/WorkflowServiceTChannel.java

+5-2
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@
8080
import java.net.InetSocketAddress;
8181
import java.net.UnknownHostException;
8282
import java.util.ArrayList;
83+
import java.util.HashMap;
8384
import java.util.Map;
8485
import java.util.UUID;
8586
import java.util.concurrent.CompletableFuture;
@@ -370,8 +371,10 @@ private <T> ThriftRequest<T> buildThriftRequest(String apiName, T body) {
370371
private <T> ThriftRequest<T> buildThriftRequest(String apiName, T body, Long rpcTimeoutOverride) {
371372
String endpoint = getEndpoint(INTERFACE_NAME, apiName);
372373
ThriftRequest.Builder<T> builder =
373-
new ThriftRequest.Builder<T>(options.getServiceName(), endpoint);
374-
builder.setHeaders(thriftHeaders);
374+
new ThriftRequest.Builder<>(options.getServiceName(), endpoint);
375+
// Create a mutable hashmap for headers, as tchannel.tracing.PrefixedHeadersCarrier assumes
376+
// that it can call put directly to add new stuffs (e.g. traces).
377+
builder.setHeaders(new HashMap<>(thriftHeaders));
375378
if (rpcTimeoutOverride != null) {
376379
builder.setTimeout(rpcTimeoutOverride);
377380
} else {

0 commit comments

Comments
 (0)