Bug 448284 - EventManager#removeListenerObject is not consistent
When null is passed to #removeListenerObject(Object) and listenerList is
null, an IAE should be thrown.
Change-Id: I0702c3616ddac80dfba9e2704ce8dac83cf7fd5b
Signed-off-by: Mikael Barbero <mikael@eclipse.org>
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/EventManager.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/EventManager.java
index 037b553..86668d2 100644
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/EventManager.java
+++ b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/EventManager.java
@@ -99,12 +99,17 @@
}
/**
- * Removes a listener from this manager.
+ * Removes a listener from this manager. Has no effect if the same listener
+ * was not already registered.
*
* @param listener
* The listener to be removed; must not be <code>null</code>.
*/
protected synchronized final void removeListenerObject(final Object listener) {
+ if (listener == null) {
+ throw new IllegalArgumentException();
+ }
+
if (listenerList != null) {
listenerList.remove(listener);