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

Yun Gao commented on FLINK-30448:
---------------------------------

Very thanks [~pltbkd] for the analyzing! Hi [~float2net] based on the above 
analysis it looks to me that this issue comes from the limitation of using java 
static method as lambda, thus I'll first close this issue. Feel free to reopen 
it if there are more need to be checked. 

> "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: Yong
>            Priority: Major
>         Attachments: TestSideOutput.java
>
>
> Attached an *all-in-one* java program, which can run locally in DEV 
> environment(e.g. IntelliJ IDEA->run), consuming from elements stream objects, 
> the object schema is a parent containing two childs(Child1 and Child2) 
> fields, I use *side-output* to map and split out two different sub-streams, 
> each for one 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 logically 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