Hi Sherman , I like your proposal , I prepared this webrev : http://cr.openjdk.java.net/~mbaesken/webrevs/8207395.2/
(and looking forward to your future move of jar to a complete nio implementation !) Best regards, Matthias > > Message: 2 > Date: Wed, 18 Jul 2018 11:37:34 -0700 > From: Xueming Shen <xueming.s...@oracle.com> > To: core-libs-dev@openjdk.java.net > Subject: Re: RFR : 8207395: jar has issues with UNC-path arguments for > the jar -C parameter [windows] > Message-ID: <5b4f88ee.8080...@oracle.com> > Content-Type: text/plain; charset=UTF-8; format=flowed > > > 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 > >