RFR (M) 8191521: handle long relative path specified in -Xbootclasspath/a on windows

Calvin Cheung calvin.cheung at oracle.com
Thu Jul 25 23:15:22 UTC 2019


On 7/25/19 8:08 AM, Schmelter, Ralf wrote:
> Hi Calvin,
>
> thanks for reviewing this change.
>
>> 4315       } else {
>> 4316         prefix = L"\\\\?\\UNC";
>> 4317         prefix_off = 1; // Overwrite the first char with the prefix.
>> 4318       }
>> Do you mean if the original path is something like "\\\\x\\y", it would
>> become the following?
>>
>>      ""\\\\?\\UNC\\x\\y"
> Exactly. Usually you can just add a prefix, but in case of the an UNC path,
> the double backslash must be changed to a single one.
>
>> Maybe add an example in the comment?
> Good idea.
>
>> 4368   if (err != ERROR_SUCCESS) {
>> 4369     os::free(result);
>> I think you need a NULL check on result before calling os::free()
>> because result could be NULL if the os::malloc() call at line 4328 has
>> failed.
> os::free() is like ::free() and delete. You can call them with NULL,
> which is just treated as a no-op.
>
>> line 4282 please add a blank space before "The"
>> line 4283 "er" should be "err"
> Good catch.
>
>> Could you also mention that the function is based on pathToNTPath() in
>> io_util_md.cpp?
> OK.
>
>> I haven't reviewed this file in details but I have tried your patch and
>> saw failures in tier1 testing.
> That's interesting. Do you only see the errors with UNC paths?

I'm not sure. Most errors with path begins with "\\\\localhost\\T$\\..."

A few errors with path begins with "//\\/\\localhost\\T$\\..."

or "\\\\/\\\\localhost\\\\/\\T$..."

>   If yes,
> could you open the 'Computer Management' application and look at
> 'System Tools' -> 'Shared Folders' -> 'Shares'. Usually if you have
> a harddrive at let's say D:, windows will create a share called D$.
> I've used this to check UNC paths, but the share might be missing.
> Especially if T: is not a harddrive but a mapped drive.
I don't have direct access to the windows machine but I was told that T: 
is mapped to some folder in the C: drive using 'subst' such as 'subst T: 
C:\somedir'.
>
> I should probably first test, if a can access the \\localhost\<DRIVELETTER>$
> share at all and only then run the UNC path tests.

Sounds good.

thanks,

Calvin

>
> Best regards,
> Ralf


More information about the hotspot-runtime-dev mailing list