diff --git a/src/share/classes/com/sun/tools/jdi/VMState.java b/src/share/classes/com/sun/tools/jdi/VMState.java index cd3c621d61c7ff881c1a00c88dd4014fd89a644a..7c246b70c11812944bed285e58acb3c8856cbe17 100644 --- a/src/share/classes/com/sun/tools/jdi/VMState.java +++ b/src/share/classes/com/sun/tools/jdi/VMState.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2020, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -172,7 +172,14 @@ class VMState { } synchronized boolean hasListener(VMListener listener) { - return listeners.contains(listener); + Iterator> iter = listeners.iterator(); + while (iter.hasNext()) { + WeakReference ref = iter.next(); + if (listener.equals(ref.get())) { + return true; + } + } + return false; } synchronized void removeListener(VMListener listener) {