You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2012/09/22 01:23:26 UTC

svn commit: r1388725 - /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.java

Author: stack
Date: Fri Sep 21 23:23:25 2012
New Revision: 1388725

URL: http://svn.apache.org/viewvc?rev=1388725&view=rev
Log:
HBASE-6858 Fix the incorrect BADVERSION checking in the recoverable zookeeper; REVERT.... BROKE

Modified:
    hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.java

Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.java?rev=1388725&r1=1388724&r2=1388725&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.java Fri Sep 21 23:23:25 2012
@@ -357,9 +357,12 @@ public class RecoverableZooKeeper {
             try{
               Stat stat = new Stat();
               byte[] revData = zk.getData(path, false, stat);
-              int idLength = Bytes.toInt(revData, MAGIC_OFFSET);
-              if (Bytes.compareTo(revData, MAGIC_OFFSET + ID_OFFSET, idLength,
-                  id, 0, id.length) == 0) {
+              int idLength = Bytes.toInt(revData, ID_LENGTH_SIZE);
+              int dataLength = revData.length-ID_LENGTH_SIZE-idLength;
+              int dataOffset = ID_LENGTH_SIZE+idLength;
+              
+              if(Bytes.compareTo(revData, ID_LENGTH_SIZE, id.length, 
+                  revData, dataOffset, dataLength) == 0) {
                 // the bad version is caused by previous successful setData
                 return stat;
               }