Wang Yong created FLINK-30448:
---------------------------------

             Summary: "filter(Objects::nonNull)" will bring down task with 
failure cause: ClassCastException
                 Key: FLINK-30448
                 URL: https://issues.apache.org/jira/browse/FLINK-30448
             Project: Flink
          Issue Type: Bug
          Components: API / DataStream
         Environment: test both on flink 1.15.1 and flink 1.16.0

Intellij-Idea dev environment run
            Reporter: Wang Yong
         Attachments: TestSideOutput.java

Attached an *all-in-one* java program, whick can run locally in DEV 
environment(e.g. IntelliJ IDEA), consuming from elements stream objects, the 
object schema is a parent containing two childs, I use *side-output* to map and 
split out two different sub-streams for each child. I put 
'{*}filter(Objects:nonNUll){*}' for each sub-stream to ignore null objects. 
When  comming from stream the parent record {*}containing any one of child is 
null{*}, the program will bring down the task and produce below error:

......

switched from RUNNING to FAILED with failure cause: 
java.lang.{*}ClassCastException{*}: mytest.TestSideOutput$Child2 cannot be cast 
to mytest.TestSideOutput$Child1. Failed to push OutputTag with id 'child2' to 
operator. This can occur when multiple OutputTags with different types but 
identical names are being used.
    at 
org.apache.flink.streaming.runtime.tasks.CopyingChainingOutput.pushToOperator(CopyingChainingOutput.java:88)

......

 

However, if I replace '{*}filter(Objects:nonNull){*}' (at line #71 and #90) 
with equivalent  '{*}filter(x->x!=null){*}‘ (at line #70 and #89), everythink 
will be OK.

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to