diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/ClassLoaderScopedWeakMap.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/ClassLoaderScopedWeakMap.java index e996f76651..3feb55c009 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/ClassLoaderScopedWeakMap.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/ClassLoaderScopedWeakMap.java @@ -4,12 +4,17 @@ import datadog.trace.bootstrap.WeakMap; import java.util.HashMap; import java.util.Map; +/** A registry which is scoped per-classloader able to hold key-value pairs with weak keys. */ public class ClassLoaderScopedWeakMap { public static final ClassLoaderScopedWeakMap INSTANCE = new ClassLoaderScopedWeakMap(); private final WeakMap> map = WeakMap.Supplier.DEFAULT.get(); + /** + * Gets the element registered at the specified key or register as new one retrieved by the + * provided supplier. + */ public synchronized Object getOrCreate( ClassLoader classLoader, Object key, Supplier valueSupplier) { Map classLoaderMap = map.get(classLoader); @@ -27,6 +32,10 @@ public class ClassLoaderScopedWeakMap { return value; } + /** + * Supplies the value to be stored and it is called only when a value does not exists yet in the + * registry. + */ public interface Supplier { Object get(); }