Test Blame

src/test/java/org/apache/commons/exec/CommandLineTest.java
TagDateBlameLineSource
  1.3-RC1    Fri Jan 10 02:54:51 JST 2014    2b1e18  224
    @Test
  sandbox    Thu Apr 24 21:13:00 JST 2008    688064  225
    public void testParseCommandLineWithUnevenQuotes() {
  sandbox    Sun Mar 12 21:07:59 JST 2006    a3538e  226
        try {
  sandbox    Sun Mar 12 21:07:59 JST 2006    a3538e  227
            CommandLine.parse("test \"foo bar");
  sandbox    Sun Mar 12 21:07:59 JST 2006    a3538e  228
            fail("IllegalArgumentException must be thrown due to uneven quotes");
  1.2-RC1    Sat Dec 28 23:20:34 JST 2013    c1410e  229
        } catch (final IllegalArgumentException e) {
  sandbox    Sun Mar 12 21:07:59 JST 2006    a3538e  230
            // Expected
  sandbox    Sun Mar 12 21:07:59 JST 2006    a3538e  231
        }
  sandbox    Sun Mar 12 21:07:59 JST 2006    a3538e  232
    }

Found Source Blame

src/main/java/org/apache/commons/exec/CommandLine.java
TagDateBlameLineSource
  EXEC_1_0_0    Tue Feb 24 01:03:17 JST 2009    7c5d81  41
    private final Vector arguments = new Vector();
  sandbox    Sat Dec 08 01:38:27 JST 2007    29abee  66
        return parse(line, null);
  sandbox    Sun Mar 12 21:07:59 JST 2006    a3538e  79
        if (line == null) {
  sandbox    Sun Mar 12 21:07:59 JST 2006    a3538e  81
        } else if (line.trim().length() == 0) {
  1.2-RC1    Sat Dec 28 23:20:34 JST 2013    c1410e  84
            final String[] tmp = translateCommandline(line);
  1.2-RC1    Sat Dec 28 23:20:34 JST 2013    c1410e  86
            final CommandLine cl = new CommandLine(tmp[0]);
  sandbox    Sat Dec 08 01:38:27 JST 2007    29abee  87
            cl.setSubstitutionMap(substitutionMap);
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  88
            for (int i = 1; i < tmp.length; i++) {
  sandbox    Sun Mar 12 21:07:59 JST 2006    a3538e  89
                cl.addArgument(tmp[i]);
  sandbox    Sun Mar 12 21:07:59 JST 2006    a3538e  92
            return cl;
  1.2-RC1    Sat Dec 28 23:20:34 JST 2013    c1410e  101
    public CommandLine(final String executable) {
  sandbox    Sat Apr 12 01:37:11 JST 2008    7aa110  102
        this.isFile=false;
  EXEC_1_0_0    Tue Feb 24 01:03:17 JST 2009    7c5d81  103
        this.executable=getExecutable(executable);
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  104
    }
  EXEC_1_0_0_RC1    Sat Jul 19 05:40:44 JST 2008    b95e06  148
        return StringUtils.fixFileSeparatorChar(expandArgument(executable));
  1.2-RC1    Sun Dec 29 01:13:03 JST 2013    69c008  167
        return this.addArguments(addArguments, true);
  1.2-RC1    Sun Dec 29 01:13:03 JST 2013    69c008  178
        if (addArguments != null) {
  1.2-RC1    Sun Dec 29 01:13:03 JST 2013    69c008  179
            for (int i = 0; i < addArguments.length; i++) {
  1.2-RC1    Sun Dec 29 01:13:03 JST 2013    69c008  180
                addArgument(addArguments[i], handleQuoting);
  sandbox    Sun Mar 12 21:07:59 JST 2006    a3538e  184
        return this;
  1.2-RC1    Sun Dec 29 01:13:03 JST 2013    69c008  196
        return this.addArguments(addArguments, true);
  1.2-RC1    Sun Dec 29 01:13:03 JST 2013    69c008  209
        if (addArguments != null) {
  1.2-RC1    Sun Dec 29 01:13:03 JST 2013    69c008  210
            final String[] argumentsArray = translateCommandline(addArguments);
  COMMONS_EXEC_1_1_RC1    Wed Sep 22 04:11:01 JST 2010    351ae2  211
            addArguments(argumentsArray, handleQuoting);
  sandbox    Sun Mar 12 21:07:59 JST 2006    a3538e  214
        return this;
  sandbox    Wed Dec 05 07:15:42 JST 2007    0b6989  225
        return this.addArgument(argument, true);
  COMMONS_EXEC_1_1_RC1    Wed Sep 22 04:11:01 JST 2010    351ae2  237
       if (argument == null)
  sandbox    Wed Dec 05 07:15:42 JST 2007    0b6989  239
           return this;
  COMMONS_EXEC_1_1_RC1    Wed Sep 22 04:11:01 JST 2010    351ae2  244
       if (handleQuoting)
  COMMONS_EXEC_1_1_RC1    Wed Sep 22 04:11:01 JST 2010    351ae2  246
           StringUtils.quoteArgument(argument);
  COMMONS_EXEC_1_1_RC1    Wed Sep 22 04:11:01 JST 2010    351ae2  249
       arguments.add(new Argument(argument, handleQuoting));
  COMMONS_EXEC_1_1_RC1    Wed Sep 22 04:11:01 JST 2010    351ae2  250
       return this;
  1.2-RC1    Sat Dec 28 23:20:34 JST 2013    c1410e  262
        final String[] result = new String[arguments.size()];
  1.2-RC1    Sat Dec 28 23:35:41 JST 2013    7fc828  264
        for (int i=0; i
  COMMONS_EXEC_1_1_RC1    Wed Sep 22 04:11:01 JST 2010    351ae2  265
            currArgument = (Argument) arguments.get(i);
  COMMONS_EXEC_1_1_RC1    Wed Sep 22 04:11:01 JST 2010    351ae2  266
            expandedArgument = expandArgument(currArgument.getValue());
  1.2-RC1    Sat Dec 28 23:18:57 JST 2013    01bfe9  267
            result[i] = currArgument.isHandleQuoting() ? StringUtils.quoteArgument(expandedArgument) : expandedArgument;
  COMMONS_EXEC_1_1_RC1    Wed Sep 22 04:11:01 JST 2010    351ae2  270
        return result;
  sandbox    Sat Dec 08 01:38:27 JST 2007    29abee  277
        return substitutionMap;
  sandbox    Sat Dec 08 01:38:27 JST 2007    29abee  287
        this.substitutionMap = substitutionMap;
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  288
    }
  EXEC_1_0_0_RC1    Sat Jul 19 05:23:35 JST 2008    43d166  296
        final String[] result = new String[arguments.size() + 1];
  EXEC_1_0_0_RC1    Sat Jul 19 05:23:35 JST 2008    43d166  297
        result[0] = this.getExecutable();
  EXEC_1_0_0_RC1    Sat Jul 19 05:23:35 JST 2008    43d166  298
        System.arraycopy(getArguments(), 0, result, 1, result.length-1);
  EXEC_1_0_0_RC1    Sat Jul 19 05:23:35 JST 2008    43d166  299
        return result;
  1.2-RC1    Tue Oct 11 06:47:27 JST 2011    0cce52  310
        return "[" + StringUtils.toString(toStrings(), ", ") + "]";
  1.2-RC1    Sat Dec 28 23:20:34 JST 2013    c1410e  322
        final StringBuffer stringBuffer = StringUtils.stringSubstitution(argument, this.getSubstitutionMap(), true);
  sandbox    Sat Dec 08 01:38:27 JST 2007    29abee  323
        return stringBuffer.toString();
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  335
        if (toProcess == null || toProcess.length() == 0) {
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  342
        final int normal = 0;
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  343
        final int inQuote = 1;
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  344
        final int inDoubleQuote = 2;
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  345
        int state = normal;
  1.2-RC1    Sat Dec 28 23:20:34 JST 2013    c1410e  346
        final StringTokenizer tok = new StringTokenizer(toProcess, "\"\' ", true);
  1.2-RC1    Sat Dec 28 23:20:34 JST 2013    c1410e  347
        final Vector v = new Vector();
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  348
        StringBuffer current = new StringBuffer();
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  349
        boolean lastTokenHasBeenQuoted = false;
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  351
        while (tok.hasMoreTokens()) {
  1.2-RC1    Sat Dec 28 23:20:34 JST 2013    c1410e  352
            final String nextTok = tok.nextToken();
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  353
            switch (state) {
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  355
                if ("\'".equals(nextTok)) {
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  356
                    lastTokenHasBeenQuoted = true;
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  357
                    state = normal;
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  359
                    current.append(nextTok);
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  361
                break;
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  363
                if ("\"".equals(nextTok)) {
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  364
                    lastTokenHasBeenQuoted = true;
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  365
                    state = normal;
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  367
                    current.append(nextTok);
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  369
                break;
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  371
                if ("\'".equals(nextTok)) {
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  372
                    state = inQuote;
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  373
                } else if ("\"".equals(nextTok)) {
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  374
                    state = inDoubleQuote;
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  375
                } else if (" ".equals(nextTok)) {
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  376
                    if (lastTokenHasBeenQuoted || current.length() != 0) {
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  377
                        v.addElement(current.toString());
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  378
                        current = new StringBuffer();
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  381
                    current.append(nextTok);
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  383
                lastTokenHasBeenQuoted = false;
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  386
        }
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  388
        if (lastTokenHasBeenQuoted || current.length() != 0) {
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  389
            v.addElement(current.toString());
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  392
        if (state == inQuote || state == inDoubleQuote) {
  sandbox    Sun Mar 12 21:07:59 JST 2006    a3538e  393
            throw new IllegalArgumentException("Unbalanced quotes in "
  1.2-RC1    Sat Dec 28 23:20:34 JST 2013    c1410e  397
        final String[] args = new String[v.size()];
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  398
        v.copyInto(args);
  sandbox    Sun Mar 12 04:18:50 JST 2006    18cb09  399
        return args;
  sandbox    Wed Dec 05 07:15:42 JST 2007    0b6989  410
        if (executable == null) {
  sandbox    Wed Dec 05 07:15:42 JST 2007    0b6989  411
            throw new IllegalArgumentException("Executable can not be null");
  1.2-RC1    Sat Dec 28 23:35:41 JST 2013    7fc828  412
        } else if (executable.trim().length() == 0) {
  sandbox    Wed Dec 05 07:15:42 JST 2007    0b6989  413
            throw new IllegalArgumentException("Executable can not be empty");
  EXEC_1_0_0    Tue Feb 24 01:03:17 JST 2009    7c5d81  415
            return StringUtils.fixFileSeparatorChar(executable);
src/main/java/org/apache/commons/exec/util/StringUtils.java
TagDateBlameLineSource
  1.2-RC1    Sat Dec 28 23:20:34 JST 2013    c1410e  67
        final StringBuffer argBuf = new StringBuffer();
  EXEC_1_0_0_RC1    Sat Jul 19 04:39:05 JST 2008    dcbad9  69
        if (argStr == null || argStr.length() == 0) {
  EXEC_1_0_0_RC1    Sat Jul 19 04:39:05 JST 2008    dcbad9  73
        if (vars == null || vars.size() == 0) {
  EXEC_1_0_0_RC1    Sat Jul 19 04:39:05 JST 2008    dcbad9  74
            return argBuf.append(argStr);
  EXEC_1_0_0_RC1    Sat Jul 19 05:25:50 JST 2008    963a84  183
        return arg.replace(SLASH_CHAR, File.separatorChar).replace(
  1.2-RC1    Sat Dec 28 23:20:34 JST 2013    c1410e  195
        final StringBuffer sb = new StringBuffer();
  EXEC_1_0_0_RC1    Sat Jul 19 05:25:50 JST 2008    963a84  196
        for (int i = 0; i < strings.length; i++) {
  EXEC_1_0_0_RC1    Sat Jul 19 05:25:50 JST 2008    963a84  197
            if (i > 0) {
  EXEC_1_0_0_RC1    Sat Jul 19 05:40:44 JST 2008    b95e06  198
                sb.append(separator);
  EXEC_1_0_0_RC1    Sat Jul 19 05:25:50 JST 2008    963a84  200
            sb.append(strings[i]);
  EXEC_1_0_0_RC1    Sat Jul 19 05:25:50 JST 2008    963a84  202
        return sb.toString();
  EXEC_1_0_0_RC1    Sat Jul 19 05:25:50 JST 2008    963a84  219
        String cleanedArgument = argument.trim();
  1.2-RC1    Sat Dec 28 23:35:41 JST 2013    7fc828  222
        while (cleanedArgument.startsWith(SINGLE_QUOTE) || cleanedArgument.startsWith(DOUBLE_QUOTE)) {
  EXEC_1_0_0_RC1    Sat Jul 19 05:25:50 JST 2008    963a84  223
            cleanedArgument = cleanedArgument.substring(1);
  1.2-RC1    Sat Dec 28 23:35:41 JST 2013    7fc828  226
        while (cleanedArgument.endsWith(SINGLE_QUOTE) || cleanedArgument.endsWith(DOUBLE_QUOTE)) {
  EXEC_1_0_0_RC1    Sat Jul 19 05:25:50 JST 2008    963a84  227
            cleanedArgument = cleanedArgument.substring(0, cleanedArgument.length() - 1);
  EXEC_1_0_0_RC1    Sat Jul 19 05:25:50 JST 2008    963a84  230
        final StringBuffer buf = new StringBuffer();
  EXEC_1_0_0_RC1    Sat Jul 19 05:25:50 JST 2008    963a84  231
        if (cleanedArgument.indexOf(DOUBLE_QUOTE) > -1) {
  EXEC_1_0_0_RC1    Sat Jul 19 05:25:50 JST 2008    963a84  232
            if (cleanedArgument.indexOf(SINGLE_QUOTE) > -1) {
  EXEC_1_0_0_RC1    Sat Jul 19 05:25:50 JST 2008    963a84  233
                throw new IllegalArgumentException(
  1.2-RC1    Sat Dec 28 23:25:39 JST 2013    1f1bf7  236
			return buf.append(SINGLE_QUOTE).append(cleanedArgument).append(
  1.2-RC1    Sat Dec 28 23:25:39 JST 2013    1f1bf7  237
			        SINGLE_QUOTE).toString();
  EXEC_1_0_0_RC1    Sat Jul 19 05:25:50 JST 2008    963a84  238
        } else if (cleanedArgument.indexOf(SINGLE_QUOTE) > -1
  EXEC_1_0_0_RC1    Sat Jul 19 05:25:50 JST 2008    963a84  239
                || cleanedArgument.indexOf(" ") > -1) {
  EXEC_1_0_0_RC1    Sat Jul 19 05:25:50 JST 2008    963a84  240
            return buf.append(DOUBLE_QUOTE).append(cleanedArgument).append(
  EXEC_1_0_0_RC1    Sat Jul 19 05:25:50 JST 2008    963a84  241
                    DOUBLE_QUOTE).toString();
  EXEC_1_0_0_RC1    Sat Jul 19 05:25:50 JST 2008    963a84  243
            return cleanedArgument;
src/main/java/org/apache/commons/exec/CommandLine.java
TagDateBlameLineSource
  COMMONS_EXEC_1_1_RC1    Wed Sep 22 04:11:01 JST 2010    351ae2  428
        {
  COMMONS_EXEC_1_1_RC1    Wed Sep 22 04:11:01 JST 2010    351ae2  429
            this.value = value.trim();
  COMMONS_EXEC_1_1_RC1    Wed Sep 22 04:11:01 JST 2010    351ae2  430
            this.handleQuoting = handleQuoting;
  COMMONS_EXEC_1_1_RC1    Wed Sep 22 04:11:01 JST 2010    351ae2  431
        }
  COMMONS_EXEC_1_1_RC1    Wed Sep 22 04:11:01 JST 2010    351ae2  435
            return value;
  COMMONS_EXEC_1_1_RC1    Wed Sep 22 04:11:01 JST 2010    351ae2  440
            return handleQuoting;