diff --git hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java index f147299..821a531 100644 --- hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java +++ hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java @@ -883,9 +883,6 @@ public class ZKUtil { * Set data into node creating node if it doesn't yet exist. * Does not set watch. * - * WARNING: this is not atomic -- it is possible to get a 0-byte data value in the znode before - * data is written - * * @param zkw zk reference * @param znode path of node * @param data data to set for node @@ -895,9 +892,10 @@ public class ZKUtil { final byte [] data) throws KeeperException { if (checkExists(zkw, znode) == -1) { - ZKUtil.createWithParents(zkw, znode); + ZKUtil.createWithParents(zkw, znode, data); + } else { + ZKUtil.setData(zkw, znode, data); } - ZKUtil.setData(zkw, znode, data); } /**