[ 
https://issues.apache.org/jira/browse/ZOOKEEPER-2467?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15559137#comment-15559137
 ] 

Rakesh R commented on ZOOKEEPER-2467:
-------------------------------------

Like [~fpj] mentioned earlier, it is good to assert the output/error message. 
One idea is to redirect the err stream something similar to 
{{ZooKeeperTest#testCliCommandsNotEchoingUsage}}.

How about something like,
{code}

    // ZOOKEEPER-2467 : Testing negative number for redo command
    @Test
    public void testCliCommandHandleNegativeScenarioForRedoCmd()
            throws Exception {
        final ZooKeeper zk = createClient();
        ZooKeeperMain zkMain = new ZooKeeperMain(zk);
        String cmd1 = "redo -1";

        // setup redirect out/err streams to get System.in/err, use this
        // judiciously!
        final PrintStream systemErr = System.err; // get current err
        final ByteArrayOutputStream errContent = new ByteArrayOutputStream();
        System.setErr(new PrintStream(errContent));
        try {
            zkMain.executeLine(cmd1);
            Assert.assertEquals("Command index out of range",
                    errContent.toString().trim());
        } finally {
            // revert redirect of out/err streams - important step!
            System.setErr(systemErr);
        }
    }
{code}

> NullPointerException when redo Command is passed negative value
> ---------------------------------------------------------------
>
>                 Key: ZOOKEEPER-2467
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2467
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: java client
>    Affects Versions: 3.4.8, 3.5.2
>         Environment: Linux , windows
>            Reporter: Joshi Shankar
>            Assignee: Rakesh Kumar Singh
>            Priority: Minor
>             Fix For: 3.4.10, 3.5.3
>
>         Attachments: ZOOKEEPER-2467-1.patch, ZOOKEEPER-2467-final.patch, 
> ZOOKEEPER-2467.patch, ZOOKEEPER-2467.patch, ZOOKEEPER-2467.patch
>
>
> When negative value of argument is passed to redo command .
> [zk: localhost:2181(CONNECTED) 0] redo -1
> Exception in thread "main" java.lang.NullPointerException
>         at java.util.StringTokenizer.<init>(Unknown Source)
>         at java.util.StringTokenizer.<init>(Unknown Source)
>         at 
> org.apache.zookeeper.ZooKeeperMain$MyCommandOptions.parseCommand(ZooKeeperMain.java:227)
>         at 
> org.apache.zookeeper.ZooKeeperMain.processZKCmd(ZooKeeperMain.java:645)
>         at 
> org.apache.zookeeper.ZooKeeperMain.processCmd(ZooKeeperMain.java:588)
>         at 
> org.apache.zookeeper.ZooKeeperMain.executeLine(ZooKeeperMain.java:360)
>         at org.apache.zookeeper.ZooKeeperMain.run(ZooKeeperMain.java:323)
>         at org.apache.zookeeper.ZooKeeperMain.main(ZooKeeperMain.java:282)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to