You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ra...@apache.org on 2012/05/30 19:06:53 UTC
svn commit: r1344351 - in /hbase/branches/0.94/src:
main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java
test/java/org/apache/hadoop/hbase/TestZooKeeper.java
Author: ramkrishna
Date: Wed May 30 17:06:52 2012
New Revision: 1344351
URL: http://svn.apache.org/viewvc?rev=1344351&view=rev
Log:
HBASE-5722 NPE in ZKUtil#getChildDataAndWatchForNewChildren when ZK not available or NW down. (Uma)
Modified:
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java
hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/TestZooKeeper.java
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java?rev=1344351&r1=1344350&r2=1344351&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java Wed May 30 17:06:52 2012
@@ -595,10 +595,12 @@ public class ZKUtil {
List<String> nodes =
ZKUtil.listChildrenAndWatchForNewChildren(zkw, baseNode);
List<NodeAndData> newNodes = new ArrayList<NodeAndData>();
- for (String node: nodes) {
- String nodePath = ZKUtil.joinZNode(baseNode, node);
- byte [] data = ZKUtil.getDataAndWatch(zkw, nodePath);
- newNodes.add(new NodeAndData(nodePath, data));
+ if (nodes != null) {
+ for (String node : nodes) {
+ String nodePath = ZKUtil.joinZNode(baseNode, node);
+ byte[] data = ZKUtil.getDataAndWatch(zkw, nodePath);
+ newNodes.add(new NodeAndData(nodePath, data));
+ }
}
return newNodes;
}
Modified: hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/TestZooKeeper.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/TestZooKeeper.java?rev=1344351&r1=1344350&r2=1344351&view=diff
==============================================================================
--- hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/TestZooKeeper.java (original)
+++ hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/TestZooKeeper.java Wed May 30 17:06:52 2012
@@ -301,6 +301,18 @@ public class TestZooKeeper {
ZKUtil.createAndFailSilent(zk2, aclZnode);
}
+
+ /**
+ * Test should not fail with NPE when getChildDataAndWatchForNewChildren
+ * invoked with wrongNode
+ */
+ @Test
+ public void testGetChildDataAndWatchForNewChildrenShouldNotThrowNPE()
+ throws Exception {
+ ZooKeeperWatcher zkw = new ZooKeeperWatcher(TEST_UTIL.getConfiguration(),
+ "testGetChildDataAndWatchForNewChildrenShouldNotThrowNPE", null);
+ ZKUtil.getChildDataAndWatchForNewChildren(zkw, "/wrongNode");
+ }
@org.junit.Rule
public org.apache.hadoop.hbase.ResourceCheckerJUnitRule cu =