Fixed a bug when updating listeners that would fail when a listener
implemented multiple listener interfaces.


git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@552807 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/framework/src/main/java/org/apache/felix/framework/util/EventDispatcher.java b/framework/src/main/java/org/apache/felix/framework/util/EventDispatcher.java
index bc74f84..b771df6 100644
--- a/framework/src/main/java/org/apache/felix/framework/util/EventDispatcher.java
+++ b/framework/src/main/java/org/apache/felix/framework/util/EventDispatcher.java
@@ -454,15 +454,15 @@
                     (listeners[i + LISTENER_CLASS_OFFSET] == clazz) &&
                     (listeners[i + LISTENER_OBJECT_OFFSET] == l))
                 {
-                    if (l instanceof FrameworkListener)
+                    if (clazz == FrameworkListener.class)
                     {
                         // The spec says to ignore this case.
                     }
-                    else if (l instanceof BundleListener)
+                    else if (clazz == BundleListener.class)
                     {
                         // The spec says to ignore this case.
                     }
-                    else if (l instanceof ServiceListener)
+                    else if (clazz == ServiceListener.class)
                     {
                         // The spec says to update the filter in this case.
                         listeners[i + LISTENER_FILTER_OFFSET] = filter;