• Bug
  • Status: Closed
  • Resolution: Fixed
  • drb
  • Reporter: sourceforgetracker
  • September 21, 2009
  • 0
  • Watchers: 0
  • September 22, 2009
  • September 22, 2009


RMIAsynchronousCacheReplicator and RMISynchronousCacheReplicator implement CacheEventListener as a CacheReplicator. They use RMICachePeer to handle the notifications. The problem is that when RMICachePeer receives a notification to put or remove an Element it intentionally does not call the local CacheEventListeners. This is to prevent circular notifications to CacheReplicators. But, it does not allow a CacheEventListener to not be a CacheReplicator. With this RMI implementation all CacheEventListeners whether they extend RMISynchronousCacheReplicator or are an additional configured CacheEventListener receive notifications only when a cache change is made directly to the Cache. They do not receive notifications from a CachePeer. This essentially makes all CacheEventListeners CacheReplicators.

A way to correct this is to separate the concerns of Cache replication from Cache event listening. This could be be done by Cache having a list of CacheReplicatorFactorys separate from a list of CacheEventListenerFactorys. CacheReplicators are not notified of Cache changes from remote peers.
CacheEventListeners are notified of Cache changes regardless of where they were initiated. Sourceforge Ticket ID: 1480027 - Opened By: amcnutt - 1 May 2006 21:14 UTC


Fiona OShea 2009-09-22

Re-opening so that I can properly close out these issues and have correct Resolution status in Jira