3 Replies Latest reply on Dec 27, 2007 4:47 PM by mc.coder

    Duplicate notifications to separate PojoCacheListener instan

    mc.coder

      I'm having an issue which I think is not supposed to be happening.

      I read the javadoc for PojoCacheImpl.addListener and it says "A given listener instance can only be added once, whether or not there is a pattern. To have a duplicate listener simply create a new instance."

      I am experiencing the following behavior. When I add 1 listener to a cache I get one notification event per change to the cached object. When I add 2 listeners (different instances, or even two instances of listeners of different object types) I get 4 notifications for every change to a cached object. Adding the second listener behaves as though it were creating a second instance of the CacheListenerAdapter in the PojoCacheImpl adding both listeners seem to be added to both adapters (creating a cross product of 4). I say this because when I print out the context from the events (e.getContext()) I can see that the 2 duplicate event notifications are coming from two distinct CacheListenerAdapter instances.

      Is anyone else experiencing this or am I doing something very wrong? This doesn't seem to me to be correct behavior.

      Output from run with 1 listener instance:

      Node attached: org.jboss.cache.pojo.notification.event.AttachedEvent[source=1: integer]
      Event.getContext(): org.jboss.cache.pojo.impl.CacheListenerAdaptor$1@6214f5


      Output from run with 2 different instances:
      Node attached: org.jboss.cache.pojo.notification.event.AttachedEvent[source=1: integer]
      Event.getContext(): org.jboss.cache.pojo.impl.CacheListenerAdaptor$1@4d76b4
      Node attached: org.jboss.cache.pojo.notification.event.AttachedEvent[source=1: integer]
      Event.getContext(): org.jboss.cache.pojo.impl.CacheListenerAdaptor$1@4d76b4
      Node attached: org.jboss.cache.pojo.notification.event.AttachedEvent[source=1: integer]
      Event.getContext(): org.jboss.cache.pojo.impl.CacheListenerAdaptor$1@19b46dc
      Node attached: org.jboss.cache.pojo.notification.event.AttachedEvent[source=1: integer]
      Event.getContext(): org.jboss.cache.pojo.impl.CacheListenerAdaptor$1@19b46dc


      As always, many thanks..