[lworld] RFR: 8373825: [lworld] ForwardingFileManager always closes its delegate leading to ClosedFileSystemException in TestOriginatingElements [v3]

David Beaumont duke at openjdk.org
Wed Dec 17 10:16:04 UTC 2025


On Wed, 17 Dec 2025 09:52:45 GMT, David Beaumont <duke at openjdk.org> wrote:

>> Allow users of ForwardingFileManager to specify if the delegate file manager should also be closed.
>> 
>> This fixes a use-after-close bug in TestOriginatingElements, where the system file manager and wrapping memory file manager have different, nested, lifetimes resulting in an early call to close the system file manager when the wrapper is closed, causing subsequent legitimate use of the system file manager to fail.
>> 
>> This wasn't noticed before now since the system file manager was using the singleton JRT file-system in which "close" does nothing. Now it's using a properly scoped instance of the JRT file-system which can be closed.
>> 
>> This fix could also probable go straight into mainline as a clone since it won't break anything there.
>
> David Beaumont has updated the pull request incrementally with one additional commit since the last revision:
> 
>   undo reformatting

test/langtools/tools/lib/toolbox/ToolBox.java line 868:

> 866:          * @param fileManager the file manager to be used for input files
> 867:          */
> 868:         public MemoryFileManager(JavaFileManager fileManager) {

Only called in 2 places, so migrating callers with an extra parameter is easy.

-------------

PR Review Comment: https://git.openjdk.org/valhalla/pull/1810#discussion_r2626415770


More information about the valhalla-dev mailing list