You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by tr...@apache.org on 2017/05/19 06:11:09 UTC
[4/4] flink git commit: [hotfix] Correct equals & hashCode
implementation of KryoSerializer
[hotfix] Correct equals & hashCode implementation of KryoSerializer
Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/e8c90950
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/e8c90950
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/e8c90950
Branch: refs/heads/master
Commit: e8c909503591179c3f912b50f48c0aabc127b383
Parents: 20b356c
Author: Till Rohrmann <tr...@apache.org>
Authored: Thu May 18 19:16:06 2017 +0200
Committer: Till Rohrmann <tr...@apache.org>
Committed: Thu May 18 23:19:37 2017 +0200
----------------------------------------------------------------------
.../typeutils/runtime/KryoRegistration.java | 8 ++++++--
.../typeutils/runtime/kryo/KryoSerializer.java | 20 +++++++++++---------
2 files changed, 17 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flink/blob/e8c90950/flink-core/src/main/java/org/apache/flink/api/java/typeutils/runtime/KryoRegistration.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/runtime/KryoRegistration.java b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/runtime/KryoRegistration.java
index 882073d..17a49b8 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/runtime/KryoRegistration.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/runtime/KryoRegistration.java
@@ -23,9 +23,9 @@ import com.esotericsoftware.kryo.Serializer;
import com.esotericsoftware.kryo.factories.ReflectionSerializerFactory;
import org.apache.flink.annotation.Internal;
import org.apache.flink.api.common.ExecutionConfig;
-import org.apache.flink.api.java.typeutils.runtime.KryoRegistrationSerializerConfigSnapshot;
import org.apache.flink.util.Preconditions;
+import javax.annotation.Nullable;
import java.io.Serializable;
/**
@@ -56,6 +56,7 @@ public class KryoRegistration implements Serializable {
* <p>This can be a dummy serializer {@link KryoRegistrationSerializerConfigSnapshot.DummyKryoSerializerClass} if
* the serializer class no longer exists when this registration instance was restored.
*/
+ @Nullable
private final Class<? extends Serializer<?>> serializerClass;
/**
@@ -65,9 +66,10 @@ public class KryoRegistration implements Serializable {
* <p>This can be a dummy serializer {@link KryoRegistrationSerializerConfigSnapshot.DummyKryoSerializerClass} if
* the serializer class no longer exists or is no longer valid when this registration instance was restored.
*/
+ @Nullable
private final ExecutionConfig.SerializableSerializer<? extends Serializer<?>> serializableSerializerInstance;
- private SerializerDefinitionType serializerDefinitionType;
+ private final SerializerDefinitionType serializerDefinitionType;
public KryoRegistration(Class<?> registeredClass) {
this.registeredClass = Preconditions.checkNotNull(registeredClass);
@@ -106,10 +108,12 @@ public class KryoRegistration implements Serializable {
return serializerDefinitionType;
}
+ @Nullable
public Class<? extends Serializer<?>> getSerializerClass() {
return serializerClass;
}
+ @Nullable
public ExecutionConfig.SerializableSerializer<? extends Serializer<?>> getSerializableSerializerInstance() {
return serializableSerializerInstance;
}
http://git-wip-us.apache.org/repos/asf/flink/blob/e8c90950/flink-core/src/main/java/org/apache/flink/api/java/typeutils/runtime/kryo/KryoSerializer.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/runtime/kryo/KryoSerializer.java b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/runtime/kryo/KryoSerializer.java
index 655de76..6730136 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/runtime/kryo/KryoSerializer.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/runtime/kryo/KryoSerializer.java
@@ -276,16 +276,17 @@ public class KryoSerializer<T> extends TypeSerializer<T> {
}
// --------------------------------------------------------------------------------------------
-
+
@Override
public int hashCode() {
- return Objects.hash(
- type,
- registeredTypes,
- registeredTypesWithSerializerClasses,
- defaultSerializerClasses);
+ int result = type.hashCode();
+ result = 31 * result + (kryoRegistrations.hashCode());
+ result = 31 * result + (defaultSerializers.hashCode());
+ result = 31 * result + (defaultSerializerClasses.hashCode());
+
+ return result;
}
-
+
@Override
public boolean equals(Object obj) {
if (obj instanceof KryoSerializer) {
@@ -293,8 +294,9 @@ public class KryoSerializer<T> extends TypeSerializer<T> {
return other.canEqual(this) &&
type == other.type &&
- kryoRegistrations.equals(other.kryoRegistrations) &&
- defaultSerializerClasses.equals(other.defaultSerializerClasses);
+ Objects.equals(kryoRegistrations, other.kryoRegistrations) &&
+ Objects.equals(defaultSerializerClasses, other.defaultSerializerClasses) &&
+ Objects.equals(defaultSerializers, other.defaultSerializers);
} else {
return false;
}