Index: src/main/java/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.java (revision 1432810) +++ src/main/java/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.java (working copy) @@ -359,12 +359,9 @@ try{ Stat stat = new Stat(); byte[] revData = zk.getData(path, false, stat); - 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) { + int idLength = Bytes.toInt(revData, ID_LENGTH_OFFSET); + if (Bytes.compareTo(revData, ID_LENGTH_OFFSET + ID_LENGTH_SIZE, idLength, + this.id, 0, this.id.length) == 0) { // the bad version is caused by previous successful setData return stat; }