RFR: 8308116: jdk.test.lib.compiler.InMemoryJavaCompiler.compile does not close files [v2]
Andrey Turbanov
aturbanov at openjdk.org
Thu May 18 09:49:52 UTC 2023
On Wed, 17 May 2023 07:15:04 GMT, Axel Boldt-Christmas <aboldtch 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.
>
> Axel Boldt-Christmas has updated the pull request incrementally with three additional commits since the last revision:
>
> - Feedback: Throw RuntimeException in close
> - Feedback: Add @Override and Callable
> - Feedback: Update Copyright years
test/lib/jdk/test/lib/compiler/InMemoryJavaCompiler.java line 182:
> 180: MemoryJavaFileObject file = new MemoryJavaFileObject(className, sourceCode);
> 181: try (CloseableCompilationTask task = getCompilationTask(file, options)) {
> 182: if(!task.call()) {
Suggestion:
if (!task.call()) {
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/14001#discussion_r1197622375
More information about the hotspot-runtime-dev
mailing list