diff --git a/src/java.desktop/share/classes/java/awt/Toolkit.java b/src/java.desktop/share/classes/java/awt/Toolkit.java index b93f9e98fde..cc664f03cb1 100644 --- a/src/java.desktop/share/classes/java/awt/Toolkit.java +++ b/src/java.desktop/share/classes/java/awt/Toolkit.java @@ -1632,7 +1632,7 @@ public abstract class Toolkit { private int[] calls = new int[LONG_BITS]; private static volatile long enabledOnToolkitMask; private AWTEventListener eventListener = null; - private WeakHashMap listener2SelectiveListener = new WeakHashMap<>(); + private final WeakHashMap listener2SelectiveListener = new WeakHashMap<>(); /* * Extracts a "pure" AWTEventListener from a AWTEventListenerProxy, @@ -1741,10 +1741,9 @@ public abstract class Toolkit { synchronized (this) { SelectiveAWTEventListener selectiveListener = - listener2SelectiveListener.get(localL); + listener2SelectiveListener.remove(localL); if (selectiveListener != null) { - listener2SelectiveListener.remove(localL); int[] listenerCalls = selectiveListener.getCalls(); for (int i=0; i