On Wed, 25 Aug 2021 17:53:52 GMT, Sergei Ustimenko <github.com+5709644+fd...@openjdk.org> wrote:
>> Change #3294 helps to avoid `AnnotaionFormatException` in >> `sun.reflect.annotation.AnnotationInvocationHandler.validateAnnotationMethods`. >> While it fixes the case with e.g. `Runnable` that generates the synthetic >> method without parameters, validation still fails on synthetic methods that >> have parameters e.g. `Function`, `BiFunction`, etc. >> >> This change removes the restriction on parameters count to be zero i.e. >> lambdas with parameters >> would be skipped from validation. > > Sergei Ustimenko has updated the pull request with a new target base due to a > merge or a rebase. The pull request now contains two commits: > > - 8268788: Filter out synthetic methods from the member methods computation > - 8268788: Annotations with lambda expressions can still cause > AnnotationFormatError Hi, I've reworked code in few places a bit. As we skip `synthetic` methods in couple of places in AnnotationInvocationHandler anyway: 1. In `equalsImpl` while going method-by-method, comparing them 2. In `validateAnnotationMethods` These two also work together to store methods in the `memberMethods` field. Then I though it makes sense to skip adding synthetic methods to the field altogether. What do you think, does it makes sense? Thanks for taking a look! ------------- PR: https://git.openjdk.java.net/jdk/pull/4642