EHC ❯ ERROR net.sf.ehcache.distribution.RMIAsynchronousCacheReplicator - Exception on flushing of replication queue: null. Continuing... java.lang.NullPointerException
-
Bug
-
Status: Closed
-
2 Major
-
Resolution: Not a Bug
-
ehcache-core,ehcache-jgroupsreplication
-
-
cdennis
-
Reporter: andrey_a
-
February 13, 2012
-
0
-
Watchers: 2
-
July 27, 2012
-
February 14, 2012
Description
I’m trying to configure EhCache with JGroups-based replication, but I get log flooded with the following exception as soon as first element is added to the cache:
12061 [Replication Thread] ERROR net.sf.ehcache.distribution.RMIAsynchronousCacheReplicator - Exception on flushing of replication queue: null. Continuing… java.lang.NullPointerException at net.sf.ehcache.distribution.RMISynchronousCacheReplicator.listRemoteCachePeers(RMISynchronousCacheReplicator.java:335) at net.sf.ehcache.distribution.RMIAsynchronousCacheReplicator.flushReplicationQueue(RMIAsynchronousCacheReplicator.java:299) at net.sf.ehcache.distribution.RMIAsynchronousCacheReplicator.replicationThreadMain(RMIAsynchronousCacheReplicator.java:119) at net.sf.ehcache.distribution.RMIAsynchronousCacheReplicator.access$100(RMIAsynchronousCacheReplicator.java:57) at net.sf.ehcache.distribution.RMIAsynchronousCacheReplicator$ReplicationThread.run(RMIAsynchronousCacheReplicator.java:371)
Some details are also available here: http://stackoverflow.com/questions/9228526/ehcache-jgroups-give-exception-on-flushing-of-replication-queue-null
Comments
Fiona OShea 2012-02-13
Chris Dennis 2012-02-13
From looking at your ehcache configuration on the stack-overflow post it looks like you are mixing RMI configuration with JGroups configuration.
The first section in your configuration configures JGroups based peer discovery:
<cacheManagerPeerProviderFactory
class="net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory"
properties="jgroups.xml"
/>
However, in the cache section you’ve configured RMI based replication.
<cacheEventListenerFactory
class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"
properties="replicateAsynchronously=true, replicatePuts=true, replicateUpdates=true, replicateUpdatesViaCopy=true, replicateRemovals=true"
/>
There is a guide to JGroups based replication here: http://www.ehcache.org/documentation/replication/jgroups-replicated-caching. For example if you switch to a section such as this for your caches then you should have more luck:
<cacheEventListenerFactory
class="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory"
properties="replicateAsynchronously=true, replicatePuts=true,
replicateUpdates=true, replicateUpdatesViaCopy=false,
replicateRemovals=true" />
The NullPointerExceptions you are seeing are not very user friendly however. I’ll look in to seeing if we can fail-fast with such broken configurations.
Andrey Adamovich 2012-02-14
Thanks, Chris. You are right I probably blindly copied it from another configutaion file. It looks better now.
Is there something we need to fix here?