Author: phunt Date: Fri Jul 31 19:07:59 2009 New Revision: 799702 URL: http://svn.apache.org/viewvc?rev=799702&view=rev Log: ZOOKEEPER-487. setdata on root (/) crashes the servers
Modified: hadoop/zookeeper/trunk/CHANGES.txt hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/common/PathTrie.java hadoop/zookeeper/trunk/src/java/test/org/apache/zookeeper/test/QuorumQuotaTest.java hadoop/zookeeper/trunk/src/java/test/org/apache/zookeeper/test/ZooKeeperQuotaTest.java Modified: hadoop/zookeeper/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/CHANGES.txt?rev=799702&r1=799701&r2=799702&view=diff ============================================================================== --- hadoop/zookeeper/trunk/CHANGES.txt (original) +++ hadoop/zookeeper/trunk/CHANGES.txt Fri Jul 31 19:07:59 2009 @@ -7,24 +7,26 @@ Backward compatible changes: BUGFIXES: - ZOOKEEPER-469. make sure CPPUNIT_CFLAGS isn't overwritten (chris via -mahadev) + ZOOKEEPER-469. make sure CPPUNIT_CFLAGS isn't overwritten + (chris via mahadev) ZOOKEEPER-471. update zkperl for 3.2.x branch (chris via mahadev) ZOOKEEPER-470. include unistd.h for sleep() in c tests (chris via mahadev) - ZOOKEEPR-460. bad testRetry in cppunit tests (hudson failure) (giri via -mahadev) + ZOOKEEPR-460. bad testRetry in cppunit tests (hudson failure) + (giri via mahadev) ZOOKEEPER-467. Change log level in BookieHandle. (flavio via mahadev) ZOOKEEPER-482. ignore sigpipe in testRetry to avoid silent immediate -failure. (chris via mahadev) + failure. (chris via mahadev) + + ZOOKEEPER-487. setdata on root (/) crashes the servers (mahadev via phunt) IMPROVEMENTS: ZOOKEEPER-473. cleanup junit tests to eliminate false positives due to -"socket reuse" and failure to close client (phunt via mahadev) + "socket reuse" and failure to close client (phunt via mahadev) ZOOKEEPER-488. Fix zkServer.sh to add clover.jar in classpath (Giridharan Kesavan via gkesavan) Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/common/PathTrie.java URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/common/PathTrie.java?rev=799702&r1=799701&r2=799702&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/common/PathTrie.java (original) +++ hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/common/PathTrie.java Fri Jul 31 19:07:59 2009 @@ -248,6 +248,9 @@ if (path == null) { return null; } + if ("/".equals(path)) { + return path; + } String[] pathComponents = path.split("/"); TrieNode parent = rootNode; List<String> components = new ArrayList<String>(); Modified: hadoop/zookeeper/trunk/src/java/test/org/apache/zookeeper/test/QuorumQuotaTest.java URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/test/org/apache/zookeeper/test/QuorumQuotaTest.java?rev=799702&r1=799701&r2=799702&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/java/test/org/apache/zookeeper/test/QuorumQuotaTest.java (original) +++ hadoop/zookeeper/trunk/src/java/test/org/apache/zookeeper/test/QuorumQuotaTest.java Fri Jul 31 19:07:59 2009 @@ -49,6 +49,7 @@ public void testQuotaWithQuorum() throws Exception { ZooKeeper zk = createClient(); + zk.setData("/", "some".getBytes(), -1); zk.create("/a", "some".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); int i = 0; Modified: hadoop/zookeeper/trunk/src/java/test/org/apache/zookeeper/test/ZooKeeperQuotaTest.java URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/test/org/apache/zookeeper/test/ZooKeeperQuotaTest.java?rev=799702&r1=799701&r2=799702&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/java/test/org/apache/zookeeper/test/ZooKeeperQuotaTest.java (original) +++ hadoop/zookeeper/trunk/src/java/test/org/apache/zookeeper/test/ZooKeeperQuotaTest.java Fri Jul 31 19:07:59 2009 @@ -53,7 +53,8 @@ InterruptedException, KeeperException { final ZooKeeper zk = createClient(); final String path = "/a/b/v"; - + // making sure setdata works on / + zk.setData("/", "some".getBytes(), -1); zk.create("/a", "some".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);