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