Looks good for me. Rémi
Le 3 février 2015 10:15:24 CET, Staffan Larsen <staffan.lar...@oracle.com> a écrit : >Hi, > >Please review this patch for hiding the lambda proxy frame in stack >traces: > >bug: https://bugs.openjdk.java.net/browse/JDK-8025636 ><https://bugs.openjdk.java.net/browse/JDK-8025636> >webrev: http://cr.openjdk.java.net/~sla/8025636/webrev.00/ ><http://cr.openjdk.java.net/~sla/8025636/webrev.00/> > >This is a straightforward addition of the LambdaForm$Hidden annotation >to the generated methods. What is surprising is that this works even if >LambdaForm$Hidden is a package-private class in java.lang.invoke and >thus not accessible from most of the generated classes. There is some >discussion of and answers to this in the bug, but essentially this >works because the annotation class is never resolved and the code in >Hotspot that looks for the annotation amounts to nothing more than >string comparisons. > >Hidden stack frames can be shown by running with >“-XX:+UnlockDiagnosticVMOptions -XX:+ShowHiddenFrames”. > >For an example of what this patch does, consider this code: > > Runnable r = () -> { throw new RuntimeException(); }; > r.run(); > >Previously, this would output: > > java.lang.RuntimeException > at pkg.Foo.lambda$main$0(Foo.java:5) > at pkg.Foo$$Lambda$1/2001112025.run(<Unknown>:1000000) > at pkg.Foo.main(Foo.java:15) > >With the patch it looks like this: > > java.lang.RuntimeException > at pkg.Foo.lambda$main$0(Foo.java:5) > at pkg.Foo.main(Foo.java:15) > > >Thanks, >/Staffan -- Envoyé de mon téléphone Android avec K-9 Mail. Excusez la brièveté.