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


Reply via email to