flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLINK-6493) Ineffective null check in RegisteredOperatorBackendStateMetaInfo#equals()
Date Thu, 03 Aug 2017 12:32:00 GMT

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

ASF GitHub Bot commented on FLINK-6493:
---------------------------------------

Github user zhangminglei commented on a diff in the pull request:

    https://github.com/apache/flink/pull/4328#discussion_r131127614
  
    --- Diff: flink-runtime/src/main/java/org/apache/flink/runtime/state/RegisteredOperatorBackendStateMetaInfo.java
---
    @@ -175,14 +176,19 @@ public boolean equals(Object obj) {
     				return false;
     			}
     
    +			if (!(obj instanceof Snapshot)) {
    +				return false;
    +			}
    +
    +			Snapshot snapshot = (Snapshot)obj;
    +
     			// need to check for nulls because serializer and config snapshots may be null on
restore
    -			return (obj instanceof Snapshot)
    -				&& name.equals(((Snapshot) obj).getName())
    -				&& assignmentMode.equals(((Snapshot) obj).getAssignmentMode())
    -				&& ((partitionStateSerializer == null && ((Snapshot) obj).getPartitionStateSerializer()
== null)
    -					|| partitionStateSerializer.equals(((Snapshot) obj).getPartitionStateSerializer()))
    -				&& ((partitionStateSerializerConfigSnapshot == null && ((Snapshot)
obj).getPartitionStateSerializerConfigSnapshot() == null)
    -					|| partitionStateSerializerConfigSnapshot.equals(((Snapshot) obj).getPartitionStateSerializerConfigSnapshot()));
    +			return Objects.equals(name, snapshot.getName())
    +				&& Objects.equals(assignmentMode, snapshot.getAssignmentMode())
    +				&& ((partitionStateSerializer == null && (snapshot.getPartitionStateSerializer()
== null)
    +					|| (Objects.equals(partitionStateSerializer, snapshot.getPartitionStateSerializer())))
    --- End diff --
    
    Thanks you so much! Have been addressed.


> Ineffective null check in RegisteredOperatorBackendStateMetaInfo#equals()
> -------------------------------------------------------------------------
>
>                 Key: FLINK-6493
>                 URL: https://issues.apache.org/jira/browse/FLINK-6493
>             Project: Flink
>          Issue Type: Bug
>          Components: State Backends, Checkpointing
>            Reporter: Ted Yu
>            Assignee: mingleizhang
>            Priority: Minor
>             Fix For: 1.4.0
>
>
> {code}
>         && ((partitionStateSerializer == null && ((Snapshot) obj).getPartitionStateSerializer()
== null)
>           || partitionStateSerializer.equals(((Snapshot) obj).getPartitionStateSerializer()))
>         && ((partitionStateSerializerConfigSnapshot == null && ((Snapshot)
obj).getPartitionStateSerializerConfigSnapshot() == null)
>           || partitionStateSerializerConfigSnapshot.equals(((Snapshot) obj).getPartitionStateSerializerConfigSnapshot()));
> {code}
> The null check for partitionStateSerializer / partitionStateSerializerConfigSnapshot
is in combination with another clause.
> This may lead to NPE in the partitionStateSerializer.equals() call.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message