[ 
https://issues.apache.org/jira/browse/BEAM-2123?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15990999#comment-15990999
 ] 

Thomas Groh commented on BEAM-2123:
-----------------------------------

e.g. {{NullableCoder.of(StringUtf8Coder.of());}} can return the original String 
when non-null, and an object that is equal only to other encoded null-string 
bytes when null.

> Passing potential null pointer to encode() in StructuredCoder#structuralValue
> -----------------------------------------------------------------------------
>
>                 Key: BEAM-2123
>                 URL: https://issues.apache.org/jira/browse/BEAM-2123
>             Project: Beam
>          Issue Type: Bug
>          Components: sdk-java-core
>            Reporter: Ted Yu
>            Assignee: Thomas Groh
>            Priority: Minor
>             Fix For: Not applicable
>
>
> {code}
>   public Object structuralValue(T value) {
>     if (value != null && consistentWithEquals()) {
>       return value;
>     } else {
>       try {
>         ByteArrayOutputStream os = new ByteArrayOutputStream();
>         encode(value, os, Context.OUTER);
> {code}
> If value is null, encode() would throw CoderException (I checked 
> ByteArrayCoder and KvCoder) which would be caught and converted to 
> IllegalArgumentException.
> Looks like structuralValue() can check null value directly and throw 
> CoderException. This would result in clearer exception.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to