[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