[ 
https://issues.apache.org/jira/browse/GROOVY-10894?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Eric Milles reassigned GROOVY-10894:
------------------------------------

    Assignee: Eric Milles

> Duplicate annotations on trait FieldHelper
> ------------------------------------------
>
>                 Key: GROOVY-10894
>                 URL: https://issues.apache.org/jira/browse/GROOVY-10894
>             Project: Groovy
>          Issue Type: Bug
>          Components: Compiler
>    Affects Versions: 4.0.8
>            Reporter: Christopher Smith
>            Assignee: Eric Milles
>            Priority: Major
>              Labels: regression
>
> The latest nightly (included with GRECLIPSE 4.9.0.v202301012233-e2206) has 
> introduced a regression that appears to be the same bug as GROOVY-10553; 
> JSR-303 annotations applied to a trait property are listed twice in the 
> bytecode on both the field and the {{$get/$set}} methods, resulting in an 
> {{AnnotationFormatError}} at runtime. Compiling with groovyc 4.0.7 produces 
> clean bytecode, and rebuilding in Eclipse reintroduces the duplicate.
> Sample:
> {code}
> trait LocationRelated {
>   @NotNull @Valid Location location
> }
> {code}
> In {{FieldHelper}} disassembly:
> {code}
>   public abstract com.example.Location 
> com_example_LocationRelated__location$set(com.example.Location);
>     descriptor: (Lcom/example/Location;)Lcom/example/Location;
>     flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
>     RuntimeVisibleTypeAnnotations:
>       0: #11(): METHOD_RETURN
>         javax.validation.constraints.NotNull
>       1: #12(): METHOD_RETURN
>         javax.validation.Valid
>       2: #11(): METHOD_RETURN
>         javax.validation.constraints.NotNull
>       3: #12(): METHOD_RETURN
>         javax.validation.Valid
>       4: #11(): METHOD_FORMAL_PARAMETER, param_index=0
>         javax.validation.constraints.NotNull
>       5: #12(): METHOD_FORMAL_PARAMETER, param_index=0
>         javax.validation.Valid
>       6: #11(): METHOD_FORMAL_PARAMETER, param_index=0
>         javax.validation.constraints.NotNull
>       7: #12(): METHOD_FORMAL_PARAMETER, param_index=0
>         javax.validation.Valid
> {code}
> (As a side issue, is there a particular reason these methods aren't marked 
> synthetic? I'm not certain that would prevent the problem's actually 
> surfacing in this case, but based on my reading of the Hibernate Validator 
> code it might have. Not sure whether that's a positive or a negative, though.)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to