On Mon, 28 Feb 2022 21:30:27 GMT, Roger Riggs <[email protected]> wrote:
>> Olga Mikhaltsova has updated the pull request incrementally with one
>> additional commit since the last revision:
>>
>> Add a new line to the end of test file for JDK-8282008
>
> (I'm still working on a more nuanced fix that works with .exe, .cmd, and with
> allowAmbiguousCommands both true and false).
>
> The suggested workaround was to remove the application quotes and let
> ProcessBuilder do the quoting.
> That resulted in an extra backslash "\" at the end of a file path. In my
> investigation, the extra "\" doesn't prevent the
> string from being correctly used as a directory path in either VisualBasic or
> cmd.exe.
> So I'm curious, in the original application that uncovered this problem, what
> is/was reported as the error?
> Was the original application retested with the workaround?
>
> The case of the backslash at the end of an argument occurs mainly in a
> directory path.
> Yes, the argument is different, but does it make a difference that matters in
> the context in which it appears.
@RogerRiggs
Our use case was something like this `java -classpath "C:\Program
Files\MySQL\JDBC\" ...`. More specifically, while this works after JDK-8250568
(the string ends with `"`)
ProcessBuilder("java.exe", "-classpath", ""C:\\New folder"", "Test",
"test");
this doesn't and, as I understand, shouldn't (the string ends with `"`):
ProcessBuilder("java.exe", "-classpath", ""C:\\New folder\\"", "Test",
"test");
and produces errors like these
Error: Could not find or load main class folder"" Test test
Caused by: java.lang.ClassNotFoundException: folder"" Test test
However, the following still doesn't work, but, I believe, should (the string
ends with `\"`):
ProcessBuilder("java.exe", "-classpath", ""C:\\New folder\\\\"", "Test",
"test");
-------------
PR: https://git.openjdk.java.net/jdk/pull/7504