You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by se...@apache.org on 2017/01/11 18:06:56 UTC
[5/5] flink git commit: [FLINK-5442] [streaming] Ensure order of enum
elements in StateDescriptor.Type through a test
[FLINK-5442] [streaming] Ensure order of enum elements in StateDescriptor.Type through a test
This closes #3091
Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/758ea79a
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/758ea79a
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/758ea79a
Branch: refs/heads/release-1.2
Commit: 758ea79a1cda1dec58d43266487ce663f7205f86
Parents: 8d3ad45
Author: Stefan Richter <s....@data-artisans.com>
Authored: Tue Jan 10 22:52:58 2017 +0100
Committer: Stephan Ewen <se...@apache.org>
Committed: Wed Jan 11 19:06:10 2017 +0100
----------------------------------------------------------------------
.../flink/api/common/state/StateDescriptor.java | 3 ++-
.../runtime/state/SerializationProxiesTest.java | 16 ++++++++++++++++
2 files changed, 18 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flink/blob/758ea79a/flink-core/src/main/java/org/apache/flink/api/common/state/StateDescriptor.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/common/state/StateDescriptor.java b/flink-core/src/main/java/org/apache/flink/api/common/state/StateDescriptor.java
index de3cd4e..ad9d417 100644
--- a/flink-core/src/main/java/org/apache/flink/api/common/state/StateDescriptor.java
+++ b/flink-core/src/main/java/org/apache/flink/api/common/state/StateDescriptor.java
@@ -49,8 +49,9 @@ import static java.util.Objects.requireNonNull;
@PublicEvolving
public abstract class StateDescriptor<S extends State, T> implements Serializable {
+ // Do not change the order of the elements in this enum, ordinal is used in serialization
public enum Type {
- VALUE, LIST, REDUCING, FOLDING, @Deprecated UNKNOWN
+ @Deprecated UNKNOWN, VALUE, LIST, REDUCING, FOLDING
}
private static final long serialVersionUID = 1L;
http://git-wip-us.apache.org/repos/asf/flink/blob/758ea79a/flink-runtime/src/test/java/org/apache/flink/runtime/state/SerializationProxiesTest.java
----------------------------------------------------------------------
diff --git a/flink-runtime/src/test/java/org/apache/flink/runtime/state/SerializationProxiesTest.java b/flink-runtime/src/test/java/org/apache/flink/runtime/state/SerializationProxiesTest.java
index 9211e92..832b022 100644
--- a/flink-runtime/src/test/java/org/apache/flink/runtime/state/SerializationProxiesTest.java
+++ b/flink-runtime/src/test/java/org/apache/flink/runtime/state/SerializationProxiesTest.java
@@ -96,4 +96,20 @@ public class SerializationProxiesTest {
Assert.assertEquals(name, metaInfo.getStateName());
}
+
+ /**
+ * This test fixes the order of elements in the enum which is important for serialization. Do not modify this test
+ * except if you are entirely sure what you are doing.
+ */
+ @Test
+ public void testFixTypeOrder() {
+ // ensure all elements are covered
+ Assert.assertEquals(5, StateDescriptor.Type.values().length);
+ // fix the order of elements to keep serialization format stable
+ Assert.assertEquals(0, StateDescriptor.Type.UNKNOWN.ordinal());
+ Assert.assertEquals(1, StateDescriptor.Type.VALUE.ordinal());
+ Assert.assertEquals(2, StateDescriptor.Type.LIST.ordinal());
+ Assert.assertEquals(3, StateDescriptor.Type.REDUCING.ordinal());
+ Assert.assertEquals(4, StateDescriptor.Type.FOLDING.ordinal());
+ }
}
\ No newline at end of file