From ef797ea50f741d1d93c8e5fb084bc15d5b64a073 Mon Sep 17 00:00:00 2001 From: liyintang Date: Fri, 21 Sep 2012 14:08:40 -0700 Subject: [PATCH] [HBASE-6858] Fix the incorrect BADVERSION checking in the recoverable zookeeper --- .../hbase/zookeeper/RecoverableZooKeeper.java | 9 +++------ 1 files changed, 3 insertions(+), 6 deletions(-) diff --git hbase-server/src/main/java/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.java hbase-server/src/main/java/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.java index 2b71860..42b5ec7 100644 --- hbase-server/src/main/java/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.java +++ hbase-server/src/main/java/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.java @@ -357,12 +357,9 @@ public class RecoverableZooKeeper { 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, MAGIC_SIZE + ID_LENGTH_SIZE, idLength, + id, 0, id.length) == 0) { // the bad version is caused by previous successful setData return stat; } -- 1.7.8.4