[jboss-cvs] JBossCache/src/org/jboss/cache/statetransfer ...
Vladmir Blagojevic
vladimir.blagojevic at jboss.com
Fri Sep 22 14:16:32 EDT 2006
User: vblagojevic
Date: 06/09/22 14:16:32
Modified: src/org/jboss/cache/statetransfer
DefaultStateTransferGenerator.java
DefaultStateTransferIntegrator.java
Log:
improve state transfer error handling
Revision Changes Path
1.4 +7 -4 JBossCache/src/org/jboss/cache/statetransfer/DefaultStateTransferGenerator.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: DefaultStateTransferGenerator.java
===================================================================
RCS file: /cvsroot/jboss/JBossCache/src/org/jboss/cache/statetransfer/DefaultStateTransferGenerator.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- DefaultStateTransferGenerator.java 21 Sep 2006 15:14:45 -0000 1.3
+++ DefaultStateTransferGenerator.java 22 Sep 2006 18:16:32 -0000 1.4
@@ -17,6 +17,7 @@
import org.jboss.cache.Fqn;
import org.jboss.cache.TreeCache;
import org.jboss.cache.Version;
+import org.jboss.cache.loader.CacheLoader;
import org.jboss.cache.loader.NodeDataExceptionMarker;
import org.jboss.cache.loader.NodeData;
@@ -69,18 +70,20 @@
log.trace("associated state succesfully written");
}
- if (generatePersistent)
+
+ CacheLoader cacheLoader = cache.getCacheLoader();
+ if (cacheLoader != null && generatePersistent)
{
if (log.isTraceEnabled())
log.trace("writing persistent state for " + fqn + ",using " + cache.getCacheLoader().getClass());
if (fqn.isRoot())
{
- cache.getCacheLoader().loadEntireState(out);
+ cacheLoader.loadEntireState(out);
}
else
{
- cache.getCacheLoader().loadState(fqn, out);
+ cacheLoader.loadState(fqn, out);
}
if (log.isTraceEnabled())
@@ -92,7 +95,7 @@
{
encouteredException = t;
log.error("failed writing state", t);
- out.writeObject(new NodeDataExceptionMarker(t));
+ out.writeObject(new NodeDataExceptionMarker(t,cache.getLocalAddress()));
}
finally
{
1.4 +17 -15 JBossCache/src/org/jboss/cache/statetransfer/DefaultStateTransferIntegrator.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: DefaultStateTransferIntegrator.java
===================================================================
RCS file: /cvsroot/jboss/JBossCache/src/org/jboss/cache/statetransfer/DefaultStateTransferIntegrator.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- DefaultStateTransferIntegrator.java 21 Sep 2006 15:14:45 -0000 1.3
+++ DefaultStateTransferIntegrator.java 22 Sep 2006 18:16:32 -0000 1.4
@@ -60,12 +60,6 @@
integrateAssociatedState(ois);
integratePersistentState(ois);
}
- catch (ClassCastException cce)
- {
- cause = cce;
- log.error("Failed integrating persistent state. One of cacheloaders is not"
- + " adhering to state stream format [JBCACHE-738].");
- }
catch(Throwable t)
{
cause = t;
@@ -76,7 +70,7 @@
ois.close();
if (cause != null)
{
- throw new Exception("State transfer failed ");
+ throw new Exception("State transfer failed ",cause);
}
}
}
@@ -95,7 +89,7 @@
transientSet = true;
if (log.isTraceEnabled())
- log.trace("transient state successfully integrated for " + targetFqn);
+ log.trace("transient state successfully integrated");
notifyAllNodesCreated(target);
}
@@ -129,7 +123,6 @@
{
CacheLoader loader = cache.getCacheLoader();
- boolean persistentSet=false;
if (loader == null)
{
if (log.isTraceEnabled())
@@ -138,7 +131,9 @@
else
{
if (log.isTraceEnabled())
- log.trace("integrating persistent state using " + loader.getClass());
+ log.trace("integrating persistent state using " + loader.getClass().getName());
+
+ boolean persistentSet = false;
try
{
if (targetFqn.isRoot())
@@ -149,7 +144,13 @@
{
loader.storeState(targetFqn, in);
}
- persistentSet=true;
+ persistentSet = true;
+ }
+ catch (ClassCastException cce)
+ {
+ log.error("Failed integrating persistent state. One of cacheloaders is not"
+ + " adhering to state stream format. See JBCACHE-738.");
+ throw cce;
}
finally
{
@@ -265,8 +266,9 @@
NodeData nd = (NodeData) in.readObject();
if (nd != null && nd.isExceptionMarker())
{
- throw new CacheException("State provider cacheloader threw exception during loadState",
- ((NodeDataExceptionMarker) nd).getCause());
+ NodeDataExceptionMarker ndem = (NodeDataExceptionMarker) nd;
+ throw new CacheException("State provider node " + ndem.getCacheNodeIdentity()
+ + " threw exception during loadState", ndem.getCause());
}
return nd;
}
More information about the jboss-cvs-commits
mailing list