You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Yun Gao (Jira)" <ji...@apache.org> on 2020/07/06 03:54:00 UTC

[jira] [Commented] (FLINK-18402) NullPointerException in org.apache.flink.api.common.typeutils.base.GenericArraySerializer.copy(GenericArraySerializer.java:96)

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

Yun Gao commented on FLINK-18402:
---------------------------------

From the [code of GenericArraySerializer|https://github.com/apache/flink/blob/f9a7dd9a1e09b03efc8b2dfde212e79f2dc3842e/flink-core/src/main/java/org/apache/flink/api/common/typeutils/base/GenericArraySerializer.java#L96], it should be resulted from that the copy method does not deal with the case when the element passed is null. It should add this adjustment and return null explicitly in this case.

> NullPointerException in org.apache.flink.api.common.typeutils.base.GenericArraySerializer.copy(GenericArraySerializer.java:96)
> ------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: FLINK-18402
>                 URL: https://issues.apache.org/jira/browse/FLINK-18402
>             Project: Flink
>          Issue Type: Bug
>          Components: API / DataStream
>    Affects Versions: 1.10.0
>         Environment: flink 1.10
>            Reporter: zhoupeijie
>            Priority: Minor
>
> I use array as follows:
> {code:java}
> DataStream<Tuple2<Boolean, CompanyBrandEntity>> ds = tEnv.toRetractStream(companyBrandSource, CompanyBrandEntity.class);
> SingleOutputStreamOperator<Object[]> middleData = ds.map(new RuleMapFunction(ruleList))
>  .filter(Objects::nonNull);
> {code}
> and I get this error:
> {code:java}
> java.lang.NullPointerException
>  at org.apache.flink.api.common.typeutils.base.GenericArraySerializer.copy(GenericArraySerializer.java:96)
>  at org.apache.flink.api.common.typeutils.base.GenericArraySerializer.copy(GenericArraySerializer.java:37)
>  at org.apache.flink.streaming.runtime.tasks.OperatorChain$CopyingChainingOutput.pushToOperator(OperatorChain.java:639)
>  at org.apache.flink.streaming.runtime.tasks.OperatorChain$CopyingChainingOutput.collect(OperatorChain.java:616)
>  at org.apache.flink.streaming.runtime.tasks.OperatorChain$CopyingChainingOutput.collect(OperatorChain.java:596)
>  at org.apache.flink.streaming.api.operators.AbstractStreamOperator$CountingOutput.collect(AbstractStreamOperator.java:730)
>  at org.apache.flink.streaming.api.operators.AbstractStreamOperator$CountingOutput.collect(AbstractStreamOperator.java:708)
>  at org.apache.flink.streaming.api.operators.StreamMap.processElement(StreamMap.java:41)
> {code}
> {color:#111f2c}then I change the SingleOutputStreamOperator<Object[]> to SingleOutputStreamOperator<Ouput>,it begins to run correctly.{color}
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)