[
https://issues.apache.org/jira/browse/SANDBOX-192?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12548423
]
Siegfried Goeschl commented on SANDBOX-192:
-------------------------------------------
Hi Reinhold,
little confusion on my side regarding your example - on the one hand you say
you are unable to create
runMemorySud.cmd -XX:+UseParallelGC -XX:ParallelGCThreads=2
on the other hand your command line should look like
runMemorySud.cmd -XX:+UseParallelGC "-XX:ParallelGCThreads=2"
> [exec] Watchdog test cases and argument quotation fix
> -----------------------------------------------------
>
> Key: SANDBOX-192
> URL: https://issues.apache.org/jira/browse/SANDBOX-192
> Project: Commons Sandbox
> Issue Type: Bug
> Components: Exec
> Affects Versions: Nightly Builds
> Environment: apache commons exec trunk/head; M$ Windows XP
> Reporter: Reinhold Füreder
> Fix For: Nightly Builds
>
> Attachments: patch_apache-commons-exec.txt, ProcessTest.java,
> ProcessTest.java
>
>
> Please find attached a patch for apache commons exec with respect to two
> issues (note that I have only tested them under M$ Windows yet, but I am very
> confident that these changes should work under *nix too):
> ---
> (1) ExecuteWatchdog test cases (DefaultExecutorTest.java): one for
> synchronous and one for asynchronous execution including the required test
> scripts (watchdog.bat, watchdog.sh) and test app (JavaApp.java). Whereas the
> one for asynchronous is a bit more elaborated and kind of "more correct",
> please note the hint on the well-known Java "bug"/issue under M$ Windows with
> respect to the Process.destroy() method in the asynchronous test case code.
> ---
> (2) Add a method to CommandLine (CommandLine.java) to add arguments without
> quoting, i.e. pre-quoted arguments, because default quoting may not be
> correct in all cases. Note that I have not tried to find out if the default
> quoting can be changed accordingly. And also that maybe this problem is only
> M$ Windows specific, but I don't know (yet). The encountered problem was:
> I want to start an executable (runMemorySud.cmd) with a list of JVM GC
> options that in turn will then start a Java application utilising these JVM
> GC options. I failed to find an accepted way of specifying the following:
> runMemorySud.cmd -XX:+UseParallelGC -XX:ParallelGCThreads=2
> After quite some time I found out that the default quoting of apache commons
> exec is causing the problem, and with default pure standard Java it works as
> expected by using (see attached ProcessTest.java example):
> Process p = new ProcessBuilder("runMemorySud.cmd", "10", "30",
> "-XX:+UseParallelGC", "\"-XX:ParallelGCThreads=2\"").start();
> However, as I said, I found no way of being able to "propagate this to the
> ProcessBuilder through apache commons exec". Thus, the need for adding a
> so-called pre-quoted argument addArgument() method.
> ---
> Would you mind applying these patches? Thanks.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.