Integrated: 8229862: NPE in jdk.compiler/

Jan Lahoda jlahoda at
Wed Dec 9 16:52:36 UTC 2020

On Mon, 16 Nov 2020 10:32:00 GMT, Jan Lahoda <jlahoda at> wrote:

> Based on Bernard's code from:
> Capturing anonymous classes inside lambdas may fail to compile, because:
> -the captured variables are not detected correctly, because `LambdaToMethod...captureLocalClassDefs` needs to find the AST node for the given `ClassSymbol`, but it has not yet been added into the `localClassDefs`. The proposed solution is to re-order the tasks done for JCNewClass, and call the super implementation sooner. This will enter the `ClassSymbol` and corresponding AST node into `localClassDefs` before the capture variables detection.
> -inside the anonymous class definition, some references to the captured variables are replaced using a map that maps captured variables for lambdas (`lambdaTranslationMap`) - but inside the anonymous class, there the captured variables should be mapped using the anonymous class' map/proxies (to fields). The proposed solution is to clear `lambdaTranslationMap` before processing the anonymous class body.

This pull request has now been integrated.

Changeset: bd22aa5e
Author:    Jan Lahoda <jlahoda at>
Stats:     64 lines in 3 files changed: 62 ins; 1 del; 1 mod

8229862: NPE in jdk.compiler/

Co-authored-by: Bernard Blaser <bsrbnd at>
Reviewed-by: vromero



More information about the compiler-dev mailing list