Filip Krakowski created BEAM-11530:
--------------------------------------
Summary: 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
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. java.lang.Long
[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}
In my understanding this should look like this.
{code:java}
boolean nullable =
Arrays.stream(method.getParameters()[0].getAnnotations())
.anyMatch(FieldValueTypeInformation::isNullableAnnotation);{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)