RFR : 8207395: jar has issues with UNC-path arguments for the jar -C parameter [windows]

Lindenmaier, Goetz goetz.lindenmaier at sap.com
Fri Jul 20 07:38:13 UTC 2018


Looks good.

Best regards,
  Goetz.

> -----Original Message-----
> From: Baesken, Matthias
> Sent: Donnerstag, 19. Juli 2018 11:15
> To: core-libs-dev at openjdk.java.net; xueming.shen at oracle.com
> Cc: Lindenmaier, Goetz <goetz.lindenmaier at sap.com>
> Subject: Re: RFR : 8207395: jar has issues with UNC-path arguments for the
> jar -C parameter [windows]
> 
> 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.shen at oracle.com>
> > To: core-libs-dev at openjdk.java.net
> > Subject: Re: RFR : 8207395: jar has issues with UNC-path arguments for
> > 	the jar -C parameter [windows]
> > Message-ID: <5B4F88EE.8080608 at 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-bounces at openjdk.java.net]
> > On
> > >>> Behalf Of Baesken, Matthias
> > >>> Sent: Dienstag, 17. Juli 2018 13:15
> > >>> To: core-libs-dev at 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
> > >



More information about the core-libs-dev mailing list