Listener gets events twice 2.2.0.CR7
mbrade Aug 20, 2008 3:13 AMHello
I'm using JBossCache 2.2.0.CR7 with one CacheListener on the Cache. The cache runs fine but my problem is that I get all events twice.
What I do is:
Cache cache = ...get the Cache from Spring Context... cache.addCacheListener( new KeyEvictionListener() ); cache.create(); cache.start();
My CacheListener:
import org.jboss.cache.notifications.annotation.CacheListener;
import org.jboss.cache.notifications.annotation.NodeActivated;
import org.jboss.cache.notifications.annotation.NodeCreated;
import org.jboss.cache.notifications.annotation.NodeEvicted;
import org.jboss.cache.notifications.annotation.NodeLoaded;
import org.jboss.cache.notifications.annotation.NodeMoved;
import org.jboss.cache.notifications.annotation.NodePassivated;
import org.jboss.cache.notifications.annotation.NodeRemoved;
import org.jboss.cache.notifications.event.Event;
import org.jboss.cache.notifications.event.NodeCreatedEvent;
import org.jboss.cache.notifications.event.NodeEvictedEvent;
import org.jboss.cache.notifications.event.NodeRemovedEvent;
@CacheListener
public class KeyEvictionListener {
@NodeRemoved
@NodeEvicted
@NodePassivated
@NodeCreated
@NodeMoved
@NodeActivated
@NodeLoaded
public void handleEvent(Event cacheEvent){
System.out.println("got event: "+cacheEvent.getType().name());
switch( cacheEvent.getType() ){
case NODE_REMOVED : {
NodeRemovedEvent nodeRemovedEvent = (NodeRemovedEvent)cacheEvent;
System.out.println( nodeRemovedEvent.getFqn() );
System.out.println( nodeRemovedEvent.getData().toString() );
break;
}
case NODE_EVICTED : {
NodeEvictedEvent nodeEvictedEvent = (NodeEvictedEvent) cacheEvent;
System.out.println( nodeEvictedEvent.getFqn() );
break;
}
case NODE_CREATED : {
NodeCreatedEvent nodeCreatedEvent = (NodeCreatedEvent) cacheEvent;
System.out.println( nodeCreatedEvent.getFqn() );
}
}
}
}
I'm using two regions one with an EvictionPolicy and one which contains resident Nodes only.
If I run some TestCode i get the following output:
got event: NODE_CREATED
/mc
got event: NODE_CREATED
/mc
got event: NODE_CREATED
/mc/entries
got event: NODE_CREATED
/mc/entries
got event: NODE_CREATED
/mc/entries/5f8d866c3800d096698dc48b549e4dd3
got event: NODE_CREATED
/mc/entries/5f8d866c3800d096698dc48b549e4dd3
got event: NODE_CREATED
/mc/keys
got event: NODE_CREATED
/mc/keys
got event: NODE_CREATED
/mc/keys/5f8d866c3800d096698dc48b549e4dd3
got event: NODE_CREATED
/mc/keys/5f8d866c3800d096698dc48b549e4dd3
got event: NODE_CREATED
/mc/entries/5755b475601346aa24776baa12da9dfe
got event: NODE_CREATED
/mc/entries/5755b475601346aa24776baa12da9dfe
got event: NODE_CREATED
/mc/keys/5755b475601346aa24776baa12da9dfe
got event: NODE_CREATED
/mc/keys/5755b475601346aa24776baa12da9dfe
got event: NODE_EVICTED
/mc/keys/5f8d866c3800d096698dc48b549e4dd3
got event: NODE_EVICTED
/mc/keys/5f8d866c3800d096698dc48b549e4dd3
got event: NODE_EVICTED
/mc/keys/5755b475601346aa24776baa12da9dfe
got event: NODE_EVICTED
/mc/keys/5755b475601346aa24776baa12da9dfe
As you can see all Events come twice for the same Fqn.
Is it a bug or am I doing somthing wrong?
thanks for the help
Marco