[jbosscache-commits] JBoss Cache SVN: r7770 - in core/trunk/src/main/java/org/jboss/cache: config and 1 other directory.

jbosscache-commits at lists.jboss.org jbosscache-commits at lists.jboss.org
Tue Feb 24 08:45:45 EST 2009


Author: manik.surtani at jboss.com
Date: 2009-02-24 08:45:44 -0500 (Tue, 24 Feb 2009)
New Revision: 7770

Modified:
   core/trunk/src/main/java/org/jboss/cache/RPCManagerImpl.java
   core/trunk/src/main/java/org/jboss/cache/config/Configuration.java
Log:
Configuration sanity check for NBST configs

Modified: core/trunk/src/main/java/org/jboss/cache/RPCManagerImpl.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/RPCManagerImpl.java	2009-02-24 13:34:08 UTC (rev 7769)
+++ core/trunk/src/main/java/org/jboss/cache/RPCManagerImpl.java	2009-02-24 13:45:44 UTC (rev 7770)
@@ -26,6 +26,7 @@
 import org.jboss.cache.commands.ReplicableCommand;
 import org.jboss.cache.config.Configuration;
 import org.jboss.cache.config.Configuration.NodeLockingScheme;
+import org.jboss.cache.config.ConfigurationException;
 import org.jboss.cache.config.RuntimeConfig;
 import org.jboss.cache.factories.ComponentRegistry;
 import org.jboss.cache.factories.annotations.Inject;
@@ -316,6 +317,9 @@
 
             boolean fetchState = shouldFetchStateOnStartup();
             boolean nonBlocking = configuration.isNonBlockingStateTransfer();
+
+            sanityCheckConfiguration(nonBlocking, fetchState);
+
             this.flushTracker = nonBlocking ? new NonBlockingFlushTracker() : new StandardFlushTracker();
             initialiseChannelAndRpcDispatcher(fetchState && !nonBlocking);
 
@@ -374,6 +378,17 @@
       }
    }
 
+   private void sanityCheckConfiguration(boolean nonBlockingStateTransfer, boolean fetchStateOnStart)
+   {
+      if (isInLocalMode || !nonBlockingStateTransfer || !fetchStateOnStart) return; // don't care about these cases!
+
+      if (configuration.getNodeLockingScheme() != NodeLockingScheme.MVCC)
+         throw new ConfigurationException("Non-blocking state transfer is only supported with the MVCC node locking scheme.  Please change your node locking scheme to MVCC or disable non-blocking state transfer.");
+
+      if (isUsingBuddyReplication)
+         throw new ConfigurationException("Non-blocking state transfer cannot be used with buddy replication at this time.  Please disable either buddy replication or non-blocking state transfer.");
+   }
+   
    private void startNonBlockStateTransfer(List<Address> members)
    {
 

Modified: core/trunk/src/main/java/org/jboss/cache/config/Configuration.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/config/Configuration.java	2009-02-24 13:34:08 UTC (rev 7769)
+++ core/trunk/src/main/java/org/jboss/cache/config/Configuration.java	2009-02-24 13:45:44 UTC (rev 7770)
@@ -548,6 +548,7 @@
       }
    }
 
+   @Deprecated
    public String getNodeLockingSchemeString()
    {
       return nodeLockingScheme == null ? null : nodeLockingScheme.toString();




More information about the jbosscache-commits mailing list