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

Brian Hulette updated BEAM-11530:
---------------------------------
    Fix Version/s: 2.28.0

> Annotated setter parameters handled wrong in schema creation
> ------------------------------------------------------------
>
>                 Key: BEAM-11530
>                 URL: https://issues.apache.org/jira/browse/BEAM-11530
>             Project: Beam
>          Issue Type: Bug
>          Components: sdk-java-core
>    Affects Versions: 2.26.0
>         Environment: Linux & OpenJDK 15
>            Reporter: Filip Krakowski
>            Priority: P1
>              Labels: annotation, fieldtype, parameter, schema
>             Fix For: 2.28.0
>
>          Time Spent: 3h 50m
>  Remaining Estimate: 0h
>
> I'm facing an exception telling me that my JavaBean contained a setter for a 
> field that had a mismatching nullable attribute, although both getter and 
> setter (parameters) are annotated with @Nullable.
>  
> The code responsible for determining if a setter's parameter is nullable 
> looks wrong to me, since it -does check if the type (class) itself is 
> annotated with @Nullable instead of checking the actual parameter's 
> annotations- only considers type annotations instead of looking at parameter 
> annotations, too. Java distinguishes between parameter annotations and type 
> annotations. Therefore annotations declared without 
> _java.lang.annotation.ElementType#TYPE_USE_ can't be accessed through 
> _Executable#getAnnotatedParameterTypes()_.
>  
> [FieldValueTypeInformation|https://github.com/apache/beam/blob/master/sdks/java/core/src/main/java/org/apache/beam/sdk/schemas/FieldValueTypeInformation.java#L234-L236]
> {code:java}
> boolean nullable =
>   Arrays.stream(method.getParameters()[0].getAnnotatedType().getAnnotations())
>         .anyMatch(annotation -> isNullableAnnotation(annotation));{code}
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to