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