[
https://issues.apache.org/jira/browse/BEAM-11530?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Brian Hulette updated BEAM-11530:
---------------------------------
Priority: P1 (was: P0)
> 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
> 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)