Hi Matthias,
thanks for doing this fix.
I think this can be noted down a bit better, avoiding duplicating the loop.
Also, please remove the redundant dir.replace(File.separatorChar, '/').
dir = dir.replace(File.separatorChar, '/');
+ String unc = (dir.startsWith("//") &&
(File.separatorChar == '\\')) ? "/" : "";
while (dir.indexOf("//") > -1) {
dir = dir.replace("//", "/");
}
-
pathsMap.get(version).add(dir.replace(File.separatorChar, '/'));
+ // Restore the second leading '/' needed for the
Windows UNC path.
+ dir = unc + dir;
+ pathsMap.get(version).add(dir);
nameBuf[k++] = dir + args[++i];
Best regards,
Goetz.
> -----Original Message-----
> From: core-libs-dev [mailto:[email protected]] On
> Behalf Of Baesken, Matthias
> Sent: Dienstag, 17. Juli 2018 13:15
> To: [email protected]
> Subject: [CAUTION] RFR : 8207395: jar has issues with UNC-path arguments
> for the jar -C parameter [windows]
>
> Please review this small fix for allowing windows UNC paths in the jar -C
> parameter.
> Currently passing a UNC path to a directory with -C <dir> fails :
>
> c:\testdir>c:\tools\jdk10\bin\jar.exe test.jar -C \\MYMACHINE\subdir
> README.txt
> Illegal option: s
> Try `jar --help' for more information.
>
> With the patch it works .
>
> webrev
>
> http://cr.openjdk.java.net/~mbaesken/webrevs/8207395/
>
> bug
>
> https://bugs.openjdk.java.net/browse/JDK-8207395
>
>
>
>
> Thanks, Matthias