diff --git a/dd-java-agent/instrumentation/jms/javax-jms-1.1/src/main/java/datadog/trace/instrumentation/jms/MessageExtractAdapter.java b/dd-java-agent/instrumentation/jms/javax-jms-1.1/src/main/java/datadog/trace/instrumentation/jms/MessageExtractAdapter.java index 66711c1cb2f..6d233e3c276 100644 --- a/dd-java-agent/instrumentation/jms/javax-jms-1.1/src/main/java/datadog/trace/instrumentation/jms/MessageExtractAdapter.java +++ b/dd-java-agent/instrumentation/jms/javax-jms-1.1/src/main/java/datadog/trace/instrumentation/jms/MessageExtractAdapter.java @@ -38,7 +38,15 @@ public void forEachKey(Message carrier, AgentPropagation.KeyClassifier classifie while (enumeration.hasMoreElements()) { String key = ((String) enumeration.nextElement()); String lowerCaseKey = cache.computeIfAbsent(key, KEY_MAPPER); - Object value = carrier.getObjectProperty(key); + Object value = null; + try { + value = carrier.getObjectProperty(key); + } catch (Throwable t) { + // log and ignore if we cannot access this property but don't break the instrumentation + if (log.isDebugEnabled()) { + log.debug("Error accessing message property {}", key, t); + } + } if (value instanceof String && !classifier.accept(lowerCaseKey, (String) value)) { return; }