diff --git a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/field/VirtualField.java b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/field/VirtualField.java index afe9763d7b..43a4348180 100644 --- a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/field/VirtualField.java +++ b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/field/VirtualField.java @@ -36,7 +36,8 @@ public abstract class VirtualField { * @param type The type that will contain the new virtual field. * @param fieldType The field type that will be added to {@code type}. */ - public static VirtualField find(Class type, Class fieldType) { + public static VirtualField find( + Class type, Class fieldType) { return RuntimeVirtualFieldSupplier.get().find(type, fieldType); } diff --git a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/internal/RuntimeVirtualFieldSupplier.java b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/internal/RuntimeVirtualFieldSupplier.java index 2de8929387..d8601c287f 100644 --- a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/internal/RuntimeVirtualFieldSupplier.java +++ b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/internal/RuntimeVirtualFieldSupplier.java @@ -16,7 +16,7 @@ public final class RuntimeVirtualFieldSupplier { private static final Logger logger = LoggerFactory.getLogger(RuntimeVirtualFieldSupplier.class); public interface VirtualFieldSupplier { - VirtualField find(Class type, Class fieldType); + VirtualField find(Class type, Class fieldType); } private static final VirtualFieldSupplier DEFAULT = new CacheBasedVirtualFieldSupplier(); @@ -44,8 +44,9 @@ public final class RuntimeVirtualFieldSupplier { @Override @SuppressWarnings("unchecked") - public VirtualField find(Class type, Class fieldType) { - return (VirtualField) + public VirtualField find( + Class type, Class fieldType) { + return (VirtualField) ownerToFieldToImplementationMap .computeIfAbsent(type, c -> Cache.weak()) .computeIfAbsent(fieldType, c -> new CacheBasedVirtualField<>()); diff --git a/instrumentation/spring/spring-kafka-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/kafka/AbstractMessageListenerContainerInstrumentation.java b/instrumentation/spring/spring-kafka-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/kafka/AbstractMessageListenerContainerInstrumentation.java index ea88ab5d93..39066d7fa0 100644 --- a/instrumentation/spring/spring-kafka-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/kafka/AbstractMessageListenerContainerInstrumentation.java +++ b/instrumentation/spring/spring-kafka-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/kafka/AbstractMessageListenerContainerInstrumentation.java @@ -41,11 +41,13 @@ public class AbstractMessageListenerContainerInstrumentation implements TypeInst @SuppressWarnings("unused") public static class GetBatchInterceptorAdvice { @Advice.OnMethodExit(suppress = Throwable.class) - public static void onExit(@Advice.Return(readOnly = false) BatchInterceptor interceptor) { + public static void onExit( + @Advice.Return(readOnly = false) BatchInterceptor interceptor) { if (!(interceptor instanceof InstrumentedBatchInterceptor)) { - VirtualField receiveContextVirtualField = + VirtualField, Context> receiveContextVirtualField = VirtualField.find(ConsumerRecords.class, Context.class); - VirtualField stateStore = VirtualField.find(ConsumerRecords.class, State.class); + VirtualField, State> stateStore = + VirtualField.find(ConsumerRecords.class, State.class); interceptor = new InstrumentedBatchInterceptor<>(receiveContextVirtualField, stateStore, interceptor); } diff --git a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/field/RuntimeFieldBasedImplementationSupplier.java b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/field/RuntimeFieldBasedImplementationSupplier.java index c4d4b3a72d..9f7479be54 100644 --- a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/field/RuntimeFieldBasedImplementationSupplier.java +++ b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/field/RuntimeFieldBasedImplementationSupplier.java @@ -16,14 +16,15 @@ final class RuntimeFieldBasedImplementationSupplier implements RuntimeVirtualFieldSupplier.VirtualFieldSupplier { @Override - public VirtualField find(Class type, Class fieldType) { + public VirtualField find( + Class type, Class fieldType) { try { String virtualFieldImplClassName = getVirtualFieldImplementationClassName(type.getName(), fieldType.getName()); Class contextStoreClass = Class.forName(virtualFieldImplClassName, false, null); Method method = contextStoreClass.getMethod("getVirtualField", Class.class, Class.class); @SuppressWarnings("unchecked") - VirtualField field = (VirtualField) method.invoke(null, type, fieldType); + VirtualField field = (VirtualField) method.invoke(null, type, fieldType); return field; } catch (ClassNotFoundException exception) { throw new IllegalStateException("VirtualField not found", exception);