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)

Reply via email to