You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Kedar Raybagkar (JIRA)" <ji...@apache.org> on 2011/07/04 11:58:21 UTC

[jira] [Updated] (EXEC-36) CommandLine does not work with double quote or single quote correctly

     [ https://issues.apache.org/jira/browse/EXEC-36?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kedar Raybagkar updated EXEC-36:
--------------------------------

    Comment: was deleted

(was: The problem that I found was that if a single quote string is already placed within a double quoted argument then the last single quote does not get added. Example: say an argument "abc = 'y'" is present then the parse converts it to "abc = 'y".

In the CommandLine java file
...
 default:
                if ("\'".equals(nextTok)) {
                  	if (state != inDoubleQuote) //by adding this it resolves the above issue.
                	         	state = inQuote;
                } else if ("\"".equals(nextTok)) {
                    state = inDoubleQuote;
                } else if (" ".equals(nextTok)) {
..
...)

> CommandLine does not work with double quote or single quote correctly
> ---------------------------------------------------------------------
>
>                 Key: EXEC-36
>                 URL: https://issues.apache.org/jira/browse/EXEC-36
>             Project: Commons Exec
>          Issue Type: Bug
>    Affects Versions: 1.0
>         Environment: Ubuntu 704, JDK1.6
>            Reporter: Kai Hu
>            Assignee: Siegfried Goeschl
>            Priority: Critical
>         Attachments: ExecParseUtils.java, ExecParseUtilsTest.java
>
>
> Please review and run the following junit test, either apache ant or apache exec does not handle the qoute in the arguments correctly.
>    @Test
>     public void shouldHandleTheDoubelQuote() throws Exception {
>         String commandline = "./script/jrake cruise:publish_installers "
>                 + "INSTALLER_VERSION=unstable_2_1 "
>                 + "INSTALLER_PATH=\"/var/lib/ cruise-agent/installers\" "
>                 + "INSTALLER_DOWNLOAD_SERVER='something'"
>                 + "WITHOUT_HELP_DOC=true";
>         CommandLine line = CommandLine.parse(commandline);
>         String[] args  = line.getArguments();
>         assertThat(args[0], is("cruise:publish_installers"));
>         assertThat(args[1], is("INSTALLER_VERSION=unstable_2_1"));
>         assertThat(args[2], is("INSTALLER_PATH=\"/var/lib/ cruise-agent/installers\""));
>         assertThat(args[3], is("INSTALLER_DOWNLOAD_SERVER='something'"));
>         assertThat(args[4], is("WITHOUT_HELP_DOC=true"));
>     }

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira