Repository: flink Updated Branches: refs/heads/release-0.8 11f4a65aa -> 8ca7cbadb
[FLINK-1446] Fix Kryo createInstance() method Project: http://git-wip-us.apache.org/repos/asf/flink/repo Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/8ca7cbad Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/8ca7cbad Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/8ca7cbad Branch: refs/heads/release-0.8 Commit: 8ca7cbadbfc0077f79dfd7f1c2dcf8e3beceeb39 Parents: 11f4a65 Author: Robert Metzger <[email protected]> Authored: Mon Jan 26 16:26:36 2015 +0100 Committer: Robert Metzger <[email protected]> Committed: Mon Jan 26 16:26:36 2015 +0100 ---------------------------------------------------------------------- .../api/java/typeutils/runtime/KryoSerializer.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flink/blob/8ca7cbad/flink-java/src/main/java/org/apache/flink/api/java/typeutils/runtime/KryoSerializer.java ---------------------------------------------------------------------- diff --git a/flink-java/src/main/java/org/apache/flink/api/java/typeutils/runtime/KryoSerializer.java b/flink-java/src/main/java/org/apache/flink/api/java/typeutils/runtime/KryoSerializer.java index f445ec6..3a51534 100644 --- a/flink-java/src/main/java/org/apache/flink/api/java/typeutils/runtime/KryoSerializer.java +++ b/flink-java/src/main/java/org/apache/flink/api/java/typeutils/runtime/KryoSerializer.java @@ -33,6 +33,7 @@ import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.EOFException; import java.io.IOException; +import java.lang.reflect.Modifier; public class KryoSerializer<T> extends TypeSerializer<T> { private static final long serialVersionUID = 2L; @@ -68,7 +69,16 @@ public class KryoSerializer<T> extends TypeSerializer<T> { @Override public T createInstance() { - return null; + if(Modifier.isAbstract(type.getModifiers()) || Modifier.isInterface(type.getModifiers()) ) { + return null; + } else { + checkKryoInitialized(); + try { + return kryo.newInstance(type); + } catch(Throwable e) { + return null; + } + } } @SuppressWarnings("unchecked")
