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

Description

Distributed Caching: Combination Automatic Peer Discovery (MulticastRMICacheManagerPeerProvider) and synchronously bootstrapping (RMIBootstrapCacheLoaderFactory) doesn’t work.

Within the init method of the CacheManager first the configured caches will be added by calling the addConfiguredCaches(configurationHelper) method. By processing this method the cache bootstrapping will be done. If the RMIBootstrapCacheLoaderFactory has been configured with bootstrapAsynchronously=false no peer nodes will be found.

The reason is, that the MulticastRMICacheManagerPeerProvider will be initialized after processing the addConfiguredCaches(configurationHelper) method. Therefore no heartbeat messages will be received before this point.

CacheManager private void init(…) { …
addConfiguredCaches(configurationHelper);

    status = Status.STATUS_ALIVE;
    if (cacheManagerPeerListener != null) {
        cacheManagerPeerListener.init();
    }
    if (cacheManagerPeerProvider != null) {
        cacheManagerPeerProvider.init();
    }

    addShutdownHook();
}

Sourceforge Ticket ID: 1661328 - Opened By: nobody - 16 Feb 2007 08:56 UTC

Comments

Sourceforge Tracker 2009-09-21

Logged In: YES user_id=693320 Originator: NO

Hi

This was fixed by changing the CacheManager to fully initialise before adding caches. A new test, testBootstrapFromClusterWithSyncLoader has been added to RMIBootstrapCacheLoaderTest.

Thanks for reporting the bug. The fix is in trunk and will be in 1.3 which will be out in beta shortly.

Greg Comment by: gregluck - 5 Mar 2007 06:37 UTC

Fiona OShea 2009-09-22

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