You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by ca...@apache.org on 2011/08/18 22:05:25 UTC
svn commit: r1159389 - in /zookeeper/trunk: CHANGES.txt
src/java/main/org/apache/zookeeper/ZooKeeperMain.java
src/java/test/org/apache/zookeeper/ZooKeeperTest.java
Author: camille
Date: Thu Aug 18 20:05:25 2011
New Revision: 1159389
URL: http://svn.apache.org/viewvc?rev=1159389&view=rev
Log:
ZOOKEEPER-1025: zkCli is overly sensitive to to spaces. (Laxman via camille)
Modified:
zookeeper/trunk/CHANGES.txt
zookeeper/trunk/src/java/main/org/apache/zookeeper/ZooKeeperMain.java
zookeeper/trunk/src/java/test/org/apache/zookeeper/ZooKeeperTest.java
Modified: zookeeper/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/zookeeper/trunk/CHANGES.txt?rev=1159389&r1=1159388&r2=1159389&view=diff
==============================================================================
--- zookeeper/trunk/CHANGES.txt (original)
+++ zookeeper/trunk/CHANGES.txt Thu Aug 18 20:05:25 2011
@@ -289,6 +289,8 @@ BUGFIXES:
(Eugene Koontz via mahadev)
ZOOKEEPER-1141. zkpython fails tests under python 2.4. (phunt via mahadev)
+
+ ZOOKEEPER-1025. zkCli is overly sensitive to to spaces. (Laxman via camille)
IMPROVEMENTS:
ZOOKEEPER-724. Improve junit test integration - log harness information
Modified: zookeeper/trunk/src/java/main/org/apache/zookeeper/ZooKeeperMain.java
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/java/main/org/apache/zookeeper/ZooKeeperMain.java?rev=1159389&r1=1159388&r2=1159389&view=diff
==============================================================================
--- zookeeper/trunk/src/java/main/org/apache/zookeeper/ZooKeeperMain.java (original)
+++ zookeeper/trunk/src/java/main/org/apache/zookeeper/ZooKeeperMain.java Thu Aug 18 20:05:25 2011
@@ -40,6 +40,7 @@ import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.data.ACL;
import org.apache.zookeeper.data.Id;
import org.apache.zookeeper.data.Stat;
+import java.util.StringTokenizer;
/**
* The command line client to ZooKeeper.
@@ -223,7 +224,13 @@ public class ZooKeeperMain {
* @return true if parsing succeeded.
*/
public boolean parseCommand( String cmdstring ) {
- String[] args = cmdstring.split(" ");
+ StringTokenizer cmdTokens = new StringTokenizer(cmdstring, " ");
+ String[] args = new String[cmdTokens.countTokens()];
+ int tokenIndex = 0;
+ while (cmdTokens.hasMoreTokens()) {
+ args[tokenIndex] = cmdTokens.nextToken();
+ tokenIndex++;
+ }
if (args.length == 0){
return false;
}
Modified: zookeeper/trunk/src/java/test/org/apache/zookeeper/ZooKeeperTest.java
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/java/test/org/apache/zookeeper/ZooKeeperTest.java?rev=1159389&r1=1159388&r2=1159389&view=diff
==============================================================================
--- zookeeper/trunk/src/java/test/org/apache/zookeeper/ZooKeeperTest.java (original)
+++ zookeeper/trunk/src/java/test/org/apache/zookeeper/ZooKeeperTest.java Thu Aug 18 20:05:25 2011
@@ -137,4 +137,15 @@ public class ZooKeeperTest extends Clien
Assert.assertEquals("KeeperErrorCode = NoNode for /invalidPath", e.getMessage());
}
}
+
+ @Test
+ public void testParseWithExtraSpaces() throws Exception {
+ final ZooKeeper zk = createClient();
+ ZooKeeperMain zkMain = new ZooKeeperMain(zk);
+ String cmdstring = " ls / ";
+ zkMain.cl.parseCommand(cmdstring);
+ Assert.assertEquals("Spaces also considered as characters", zkMain.cl.getNumArguments(), 2);
+ Assert.assertEquals("ls is not taken as first argument", zkMain.cl.getCmdArgument(0), "ls");
+ Assert.assertEquals("/ is not taken as second argument", zkMain.cl.getCmdArgument(1), "/");
+ }
}