[jbosscache-commits] JBoss Cache SVN: r8025 - in core/trunk/src: test/java/org/jboss/cache/buddyreplication and 1 other directory.

jbosscache-commits at lists.jboss.org jbosscache-commits at lists.jboss.org
Thu Apr 30 06:33:33 EDT 2009


Author: manik.surtani at jboss.com
Date: 2009-04-30 06:33:33 -0400 (Thu, 30 Apr 2009)
New Revision: 8025

Modified:
   core/trunk/src/main/java/org/jboss/cache/buddyreplication/BuddyFqnTransformer.java
   core/trunk/src/test/java/org/jboss/cache/buddyreplication/BuddyFqnTransformerTest.java
Log:
[JBCACHE-1507] (IllegalArgumentException during BuddyManager handling of removed node) Fixed BuddyFqnTransformer + added unit test

Modified: core/trunk/src/main/java/org/jboss/cache/buddyreplication/BuddyFqnTransformer.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/buddyreplication/BuddyFqnTransformer.java	2009-04-29 22:08:39 UTC (rev 8024)
+++ core/trunk/src/main/java/org/jboss/cache/buddyreplication/BuddyFqnTransformer.java	2009-04-30 10:33:33 UTC (rev 8025)
@@ -102,7 +102,10 @@
       if (!isBackupFqn(fqn)) return fqn;
       if (fqn.equals(BUDDY_BACKUP_SUBTREE_FQN)) return Fqn.ROOT;
       // remove the first 2 (or 3 in the case of a dead backup region) elements
-      return fqn.getSubFqn(isDeadBackupFqn(fqn) ? 3 : 2, fqn.size());
+      boolean isDead = isDeadBackupFqn(fqn);
+      int fqnSz = fqn.size();
+      if (isDead && fqnSz == 2) return Fqn.ROOT;
+      return fqn.getSubFqn(isDead ? 3 : 2, fqnSz);
    }
 
    /**

Modified: core/trunk/src/test/java/org/jboss/cache/buddyreplication/BuddyFqnTransformerTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/buddyreplication/BuddyFqnTransformerTest.java	2009-04-29 22:08:39 UTC (rev 8024)
+++ core/trunk/src/test/java/org/jboss/cache/buddyreplication/BuddyFqnTransformerTest.java	2009-04-30 10:33:33 UTC (rev 8025)
@@ -39,4 +39,18 @@
    {
       assert Fqn.ROOT == buddyFqnTransformer.getBackupRootFromFqn(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN);
    }
+
+   public void testGetActualFqnOnDeadBackup()
+   {
+      Fqn deadBackup = Fqn.fromString("/_BUDDY_BACKUP_/1.2.3.4_5678:DEAD/5/a/b/c/d");
+      Fqn actualFqn = Fqn.fromString("/a/b/c/d");
+      assert actualFqn.equals(buddyFqnTransformer.getActualFqn(deadBackup));
+   }
+
+   public void testGetActualFqnOnIncompleteDeadBackup()
+   {
+      Fqn deadBackup = Fqn.fromString("/_BUDDY_BACKUP_/1.2.3.4_5678:DEAD");
+      Fqn actualFqn = Fqn.ROOT;
+      assert actualFqn.equals(buddyFqnTransformer.getActualFqn(deadBackup));
+   }
 }




More information about the jbosscache-commits mailing list