You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by te...@apache.org on 2014/02/02 00:04:15 UTC
svn commit: r1563507 -
/hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java
Author: tedyu
Date: Sat Feb 1 23:04:15 2014
New Revision: 1563507
URL: http://svn.apache.org/r1563507
Log:
HBASE-10448 ZKUtil create and watch methods don't set watch in some cases (Jerry He)
Modified:
hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java
Modified: hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java?rev=1563507&r1=1563506&r2=1563507&view=diff
==============================================================================
--- hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java (original)
+++ hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java Sat Feb 1 23:04:15 2014
@@ -999,20 +999,21 @@ public class ZKUtil {
public static boolean createEphemeralNodeAndWatch(ZooKeeperWatcher zkw,
String znode, byte [] data)
throws KeeperException {
+ boolean ret = true;
try {
zkw.getRecoverableZooKeeper().create(znode, data, createACL(zkw, znode),
CreateMode.EPHEMERAL);
} catch (KeeperException.NodeExistsException nee) {
- if(!watchAndCheckExists(zkw, znode)) {
- // It did exist but now it doesn't, try again
- return createEphemeralNodeAndWatch(zkw, znode, data);
- }
- return false;
+ ret = false;
} catch (InterruptedException e) {
LOG.info("Interrupted", e);
Thread.currentThread().interrupt();
}
- return true;
+ if(!watchAndCheckExists(zkw, znode)) {
+ // It did exist but now it doesn't, try again
+ return createEphemeralNodeAndWatch(zkw, znode, data);
+ }
+ return ret;
}
/**
@@ -1038,22 +1039,23 @@ public class ZKUtil {
public static boolean createNodeIfNotExistsAndWatch(
ZooKeeperWatcher zkw, String znode, byte [] data)
throws KeeperException {
+ boolean ret = true;
try {
zkw.getRecoverableZooKeeper().create(znode, data, createACL(zkw, znode),
CreateMode.PERSISTENT);
} catch (KeeperException.NodeExistsException nee) {
- try {
- zkw.getRecoverableZooKeeper().exists(znode, zkw);
- } catch (InterruptedException e) {
- zkw.interruptedException(e);
- return false;
- }
+ ret = false;
+ } catch (InterruptedException e) {
+ zkw.interruptedException(e);
return false;
+ }
+ try {
+ zkw.getRecoverableZooKeeper().exists(znode, zkw);
} catch (InterruptedException e) {
zkw.interruptedException(e);
return false;
}
- return true;
+ return ret;
}
/**