From eeac67bdb1a1460a592e606af21d108f1d0d8b64 Mon Sep 17 00:00:00 2001 From: Oleg Zasymenko Date: Tue, 8 Feb 2022 20:36:12 +0200 Subject: [PATCH] Fix WeakConcurrentMap memory leak (#5316) --- .../internal/weaklockfree/WeakConcurrentMap.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/cache/internal/weaklockfree/WeakConcurrentMap.java b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/cache/internal/weaklockfree/WeakConcurrentMap.java index 05758c72ed..b10d790f23 100644 --- a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/cache/internal/weaklockfree/WeakConcurrentMap.java +++ b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/cache/internal/weaklockfree/WeakConcurrentMap.java @@ -215,6 +215,12 @@ public class WeakConcurrentMap return super.get(key); } + @Override + public V getIfPresent(K key) { + expungeStaleEntries(); + return super.getIfPresent(key); + } + @Override public boolean containsKey(K key) { expungeStaleEntries(); @@ -227,6 +233,12 @@ public class WeakConcurrentMap return super.put(key, value); } + @Override + public V putIfAbsent(K key, V value) { + expungeStaleEntries(); + return super.putIfAbsent(key, value); + } + @Override public V remove(K key) { expungeStaleEntries();