RFR : 8207395: jar has issues with UNC-path arguments for the jar -C parameter [windows]
Xueming Shen
xueming.shen at oracle.com
Wed Jul 18 18:37:34 UTC 2018
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