RFR(S): 8188122: Path length limits on Windows leads to obscure class loading failures

Calvin Cheung calvin.cheung at oracle.com
Mon Oct 16 23:23:37 UTC 2017


Hi David,

In order to use the Unicode API, the hotspot windows version needs to be 
compiled with UNICODE defined.
I can file an RFE for that if we want to pursue that enhancement.
For now, I think adding more informative message other than just a CNFE 
should be sufficient.

What do you think?

thanks,
Calvin

On 10/16/17, 4:06 PM, David Holmes wrote:
> Hi Calvin,
>
> Isn't there a Unicode API we can use for this?
>
> "The Windows API has many functions that also have Unicode versions to 
> permit an extended-length path for a maximum total path length of 
> 32,767 characters. " [1]
>
> Thanks,
> David
>
> [1] 
> https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx#maxpath
>
> On 17/10/2017 8:15 AM, Calvin Cheung wrote:
>> JBS: https://bugs.openjdk.java.net/browse/JDK-8188122
>>
>> Adding a warning message if the full path or the directory length 
>> exceeds MAX_PATH on windows.
>>
>> Example warning messages.
>>
>> 1) The full path exceeds MAX_PATH:
>>
>> Java HotSpot(TM) 64-Bit Server VM warning: construct full path name 
>> failed: total length 270 exceeds max length of 260
>>      dir 
>> T:\\testoutput\\jtreg\\JTwork\\classes\\2\\runtime\\LoadClass\\LongPath.d\\xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
>> length 259
>>      name Hello.class length 11
>>
>> 2) The directory path exceeds MAX_PATH:
>>
>> Java HotSpot(TM) 64-Bit Server VM warning: os::stat failed: path 
>> length 265 exceeds max length 260
>>      path 
>> T:\\testoutput\\jtreg\\JTwork\\classes\\2\\runtime\\LoadClass\\LongPath.d\\xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\\xxxxx 
>>
>>
>> webrev:
>>      http://cr.openjdk.java.net/~ccheung/8188122/webrev.00/
>>
>> Testing:
>>      JPRT (including the new test)
>>
>> thanks,
>> Calvin


More information about the hotspot-runtime-dev mailing list