RFR (M) 8191521: handle long relative path specified in -Xbootclasspath/a on windows
    Schmelter, Ralf 
    ralf.schmelter at sap.com
       
    Thu Jul 25 15:08:38 UTC 2019
    
    
  
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? 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 should probably first test, if a can access the \\localhost\<DRIVELETTER>$
share at all and only then run the UNC path tests. 
Best regards,
Ralf
    
    
More information about the hotspot-runtime-dev
mailing list