[jbosscache-commits] JBoss Cache SVN: r7804 - core/trunk/src/main/java/org/jboss/cache/statetransfer.
jbosscache-commits at lists.jboss.org
jbosscache-commits at lists.jboss.org
Fri Feb 27 07:52:48 EST 2009
Author: manik.surtani at jboss.com
Date: 2009-02-27 07:52:48 -0500 (Fri, 27 Feb 2009)
New Revision: 7804
Modified:
core/trunk/src/main/java/org/jboss/cache/statetransfer/DefaultStateTransferGenerator.java
Log:
Potential fix for NBST + loaders
Modified: core/trunk/src/main/java/org/jboss/cache/statetransfer/DefaultStateTransferGenerator.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/statetransfer/DefaultStateTransferGenerator.java 2009-02-27 12:40:34 UTC (rev 7803)
+++ core/trunk/src/main/java/org/jboss/cache/statetransfer/DefaultStateTransferGenerator.java 2009-02-27 12:52:48 UTC (rev 7804)
@@ -87,20 +87,22 @@
{
Fqn fqn = getFqn(rootNode);
boolean activated = false;
+ CacheLoader cacheLoader = cache.getCacheLoaderManager() == null ? null : cache.getCacheLoaderManager().getCacheLoader();
+ boolean needToGeneratePersistentState = generatePersistent && cacheLoader != null;
try
{
cache.getMarshaller().objectToObjectStream(STATE_TRANSFER_VERSION, out);
- if (generateTransient)
+
+ // activate the tx log only if we need to generate either transient or persistent state
+ if (nonBlocking && (generateTransient || needToGeneratePersistentState))
{
- if (nonBlocking)
- {
- activated = txLog.activate();
- if (! activated)
- throw new StateProviderBusyException("Busy performing state transfer for someone else");
+ activated = txLog.activate();
+ if (! activated) throw new StateProviderBusyException("Busy performing state transfer for someone else");
+ if (trace) log.trace("Transaction log activated!");
+ }
- if (trace) log.trace("Transaction log activated!");
- }
-
+ if (generateTransient)
+ {
//transient + marker
if (trace) log.trace("writing transient state for " + fqn);
marshallTransientState((InternalNode) rootNode, out);
@@ -121,11 +123,8 @@
delimitStream(out);
}
- CacheLoader cacheLoader = cache.getCacheLoaderManager() == null ? null : cache.getCacheLoaderManager().getCacheLoader();
- if (cacheLoader != null && generatePersistent)
- {
- writePersistentData(out, fqn, cacheLoader);
- }
+ if (needToGeneratePersistentState) writePersistentData(out, fqn, cacheLoader);
+
delimitStream(out);
if (nonBlocking && generateTransient)
More information about the jbosscache-commits
mailing list