Ideally it would be preferred to move jar to a complete nio implementation and we then can leave the WindowsPath to take care of this stuff. That said that would be a relative big change. I do have a version on my disk but need clean up, test, performance measurement
and review to get it.

So for now I think it's fine to add this small fix to support the unc.

now sure if the following is better?

 637                         boolean hasUNC = File.separatorChar == '\\'&&  
dir.startsWith("//");
 638                         while (dir.indexOf("//")>  -1) {
 639                             dir = dir.replace("//", "/");
 640                         }
 641                         if (isUNC)     // Restore Windows UNC path.
 642                             dir = "/" + dir;

-Sherman


On 7/18/18, 6:44 AM, Roger Riggs wrote:
Hi,

Is there any chance that just using java.nio.file.Path.of will do the needed cleanup? (or Paths.get)
It seems a shame to spread this kind of adhoc fixup around?

$0.02, Roger

On 7/18/2018 5:31 AM, Lindenmaier, Goetz wrote:
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:core-libs-dev-boun...@openjdk.java.net] On
Behalf Of Baesken, Matthias
Sent: Dienstag, 17. Juli 2018 13:15
To: core-libs-dev@openjdk.java.net
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


Reply via email to