Fix NPE in the RabbitMQ instrumentation (#8021)

Fixes #8020
This commit is contained in:
Mateusz Rzeszutek 2023-03-09 18:15:27 +01:00 committed by GitHub
parent 96fd1d7522
commit 0dccc3ad56
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 5 deletions

View File

@ -5,10 +5,13 @@
package io.opentelemetry.javaagent.instrumentation.rabbitmq; package io.opentelemetry.javaagent.instrumentation.rabbitmq;
import static java.util.Collections.emptyList;
import static java.util.Collections.singletonList;
import io.opentelemetry.instrumentation.api.instrumenter.messaging.MessagingAttributesGetter; import io.opentelemetry.instrumentation.api.instrumenter.messaging.MessagingAttributesGetter;
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes; import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map;
import javax.annotation.Nullable; import javax.annotation.Nullable;
enum RabbitDeliveryAttributesGetter implements MessagingAttributesGetter<DeliveryRequest, Void> { enum RabbitDeliveryAttributesGetter implements MessagingAttributesGetter<DeliveryRequest, Void> {
@ -72,10 +75,14 @@ enum RabbitDeliveryAttributesGetter implements MessagingAttributesGetter<Deliver
@Override @Override
public List<String> getMessageHeader(DeliveryRequest request, String name) { public List<String> getMessageHeader(DeliveryRequest request, String name) {
Object value = request.getProperties().getHeaders().get(name); Map<String, Object> headers = request.getProperties().getHeaders();
if (value != null) { if (headers == null) {
return Collections.singletonList(value.toString()); return emptyList();
} }
return Collections.emptyList(); Object value = headers.get(name);
if (value == null) {
return emptyList();
}
return singletonList(value.toString());
} }
} }