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

David Holmes david.holmes at oracle.com
Mon Oct 16 23:06:47 UTC 2017


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