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;