diff --git a/src/core/src/main/java/org/apache/jmeter/testbeans/gui/TestBeanGUI.java b/src/core/src/main/java/org/apache/jmeter/testbeans/gui/TestBeanGUI.java index 6c66e6000c7..dfcce91dcb5 100644 --- a/src/core/src/main/java/org/apache/jmeter/testbeans/gui/TestBeanGUI.java +++ b/src/core/src/main/java/org/apache/jmeter/testbeans/gui/TestBeanGUI.java @@ -37,7 +37,6 @@ import javax.swing.JPopupMenu; -import org.apache.commons.collections4.map.LRUMap; import org.apache.jmeter.assertions.Assertion; import org.apache.jmeter.assertions.gui.AbstractAssertionGui; import org.apache.jmeter.config.ConfigElement; @@ -69,6 +68,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.github.benmanes.caffeine.cache.Cache; +import com.github.benmanes.caffeine.cache.Caffeine; + /** * JMeter GUI element editing for TestBean elements. *

@@ -109,7 +111,10 @@ public class TestBeanGUI extends AbstractJMeterGuiComponent implements JMeterGUI * needs to be limited, though, to avoid memory issues when editing very * large test plans. */ - private final Map customizers = new LRUMap<>(20); + private final Cache customizers = + Caffeine.newBuilder() // TOOD: should this be made static? + .maximumSize(20) + .build(); /** Index of the customizer in the JPanel's child component list: */ private int customizerIndexInPanel; @@ -325,7 +330,7 @@ private void setValues(TestElement element) { if (initialized){ remove(customizerIndexInPanel); } - Customizer c = customizers.computeIfAbsent(element, e -> { + Customizer c = customizers.get(element, e -> { Customizer result = createCustomizer(); result.setObject(propertyMap); return result; diff --git a/xdocs/changes.xml b/xdocs/changes.xml index 5819e64aadd..dbaaeead128 100644 --- a/xdocs/changes.xml +++ b/xdocs/changes.xml @@ -107,6 +107,7 @@ Summary