RFR: 8308116: jdk.test.lib.compiler.InMemoryJavaCompiler.compile does not close files

Leonid Mesnik lmesnik at openjdk.org
Tue May 16 20:05:47 UTC 2023


On Tue, 16 May 2023 19:55:39 GMT, Leonid Mesnik <lmesnik at openjdk.org> wrote:

>> jdk.test.lib.compiler.InMemoryJavaCompiler.compile(String className, CharSequence sourceCode, String... options) creates a JavaFileManager but fails to close it after the CompilationTask is completed, leaving the file descriptors open until reference processing kicks in.
>> 
>> Graph below shows number of open file descriptors before and after this patch for a program which compiles dummy classes in a loop. 
>> <img width="1116" alt="Before and after" src="https://github.com/openjdk/jdk/assets/1139284/1ecfb32a-735b-4765-bcca-81f67a4c9816">
>> 
>> Testing: GHA and Oracle CI tier1-3. Tests using jdk.test.lib.compiler.InMemoryJavaCompiler also tested locally.
>
> test/lib/jdk/test/lib/compiler/InMemoryJavaCompiler.java line 231:
> 
>> 229:         }
>> 230: 
>> 231:         public void close() throws IOException {
> 
> Please add tag Override.

Might it be better to wrap IOException into RuntimeException here and don't have any 'throws' but it is up to you.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/14001#discussion_r1195634160


More information about the hotspot-runtime-dev mailing list