Author: tedyu
Date: Thu May 9 13:28:34 2013
New Revision: 1480623
URL: http://svn.apache.org/r1480623
Log:
HBASE-8509 ZKUtil#createWithParents won't set data during znode creation when
parent folder doesn't exit (Jefferey and Ted)
Modified:
hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java
hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/TestZooKeeper.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=1480623&r1=1480622&r2=1480623&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
Thu May 9 13:28:34 2013
@@ -1231,7 +1231,7 @@ public class ZKUtil {
return;
} catch(KeeperException.NoNodeException nne) {
createWithParents(zkw, getParent(znode));
- createWithParents(zkw, znode);
+ createWithParents(zkw, znode, data);
} catch(InterruptedException ie) {
zkw.interruptedException(ie);
}
Modified:
hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/TestZooKeeper.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/TestZooKeeper.java?rev=1480623&r1=1480622&r2=1480623&view=diff
==============================================================================
---
hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/TestZooKeeper.java
(original)
+++
hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/TestZooKeeper.java
Thu May 9 13:28:34 2013
@@ -22,6 +22,7 @@ import static org.junit.Assert.assertEqu
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.io.IOException;
@@ -282,8 +283,29 @@ public class TestZooKeeper {
}
/**
- * Create a bunch of znodes in a hierarchy, try deleting one that has childs
- * (it will fail), then delete it recursively, then delete the last znode
+ * Create a znode with data
+ * @throws Exception
+ */
+ @Test
+ public void testCreateWithParents() throws Exception {
+ ZooKeeperWatcher zkw =
+ new ZooKeeperWatcher(new Configuration(TEST_UTIL.getConfiguration()),
+ TestZooKeeper.class.getName(), null);
+ byte[] expectedData = new byte[] { 1, 2, 3 };
+ ZKUtil.createWithParents(zkw, "/l1/l2/l3/l4/testCreateWithParents",
expectedData);
+ byte[] data = ZKUtil.getData(zkw, "/l1/l2/l3/l4/testCreateWithParents");
+ assertTrue(Bytes.equals(expectedData, data));
+ ZKUtil.deleteNodeRecursively(zkw, "/l1");
+
+ ZKUtil.createWithParents(zkw, "/testCreateWithParents", expectedData);
+ data = ZKUtil.getData(zkw, "/testCreateWithParents");
+ assertTrue(Bytes.equals(expectedData, data));
+ ZKUtil.deleteNodeRecursively(zkw, "/testCreateWithParents");
+ }
+
+ /**
+ * Create a bunch of znodes in a hierarchy, try deleting one that has childs
(it will fail), then
+ * delete it recursively, then delete the last znode
* @throws Exception
*/
@Test