You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by fh...@apache.org on 2018/08/16 20:47:55 UTC
[flink] branch release-1.6 updated: [FLINK-10116] [types] Fix
getTotalFields() implementation of some TypeInfos.
This is an automated email from the ASF dual-hosted git repository.
fhueske pushed a commit to branch release-1.6
in repository https://gitbox.apache.org/repos/asf/flink.git
The following commit(s) were added to refs/heads/release-1.6 by this push:
new 3f3736f [FLINK-10116] [types] Fix getTotalFields() implementation of some TypeInfos.
3f3736f is described below
commit 3f3736f0901ec10a998eb573b1da2bd7d743c0b7
Author: Fabian Hueske <fh...@apache.org>
AuthorDate: Fri Aug 10 15:53:42 2018 +0200
[FLINK-10116] [types] Fix getTotalFields() implementation of some TypeInfos.
This closes #6569.
---
.../org/apache/flink/api/common/typeinfo/NothingTypeInfo.java | 2 +-
.../org/apache/flink/api/common/typeinfo/TypeInformation.java | 1 +
.../flink/api/common/typeutils/TypeInformationTestBase.java | 10 ++++++++++
.../apache/flink/api/java/typeutils/MissingTypeInfoTest.java | 5 +++++
.../apache/flink/api/java/typeutils/TypeInfoFactoryTest.java | 2 +-
.../flink/queryablestate/client/VoidNamespaceTypeInfo.java | 2 +-
.../org/apache/flink/runtime/state/VoidNamespaceTypeInfo.java | 2 +-
.../flink/api/scala/typeutils/ScalaNothingTypeInfo.scala | 2 +-
.../org/apache/flink/api/scala/typeutils/UnitTypeInfo.scala | 2 +-
9 files changed, 22 insertions(+), 6 deletions(-)
diff --git a/flink-core/src/main/java/org/apache/flink/api/common/typeinfo/NothingTypeInfo.java b/flink-core/src/main/java/org/apache/flink/api/common/typeinfo/NothingTypeInfo.java
index 73b916f..307dfa0 100644
--- a/flink-core/src/main/java/org/apache/flink/api/common/typeinfo/NothingTypeInfo.java
+++ b/flink-core/src/main/java/org/apache/flink/api/common/typeinfo/NothingTypeInfo.java
@@ -53,7 +53,7 @@ public class NothingTypeInfo extends TypeInformation<Nothing> {
@Override
@PublicEvolving
public int getTotalFields() {
- return 0;
+ return 1;
}
@Override
diff --git a/flink-core/src/main/java/org/apache/flink/api/common/typeinfo/TypeInformation.java b/flink-core/src/main/java/org/apache/flink/api/common/typeinfo/TypeInformation.java
index c5c077f..e04a494 100644
--- a/flink-core/src/main/java/org/apache/flink/api/common/typeinfo/TypeInformation.java
+++ b/flink-core/src/main/java/org/apache/flink/api/common/typeinfo/TypeInformation.java
@@ -111,6 +111,7 @@ public abstract class TypeInformation<T> implements Serializable {
* fields, in the case of composite types. In the example below, the OuterType type has three
* fields in total.
*
+ * <p>The total number of fields must be at least 1.
*
* @return The number of fields in this type, including its sub-fields (for composite types)
*/
diff --git a/flink-core/src/test/java/org/apache/flink/api/common/typeutils/TypeInformationTestBase.java b/flink-core/src/test/java/org/apache/flink/api/common/typeutils/TypeInformationTestBase.java
index bd35070..164fc95 100644
--- a/flink-core/src/test/java/org/apache/flink/api/common/typeutils/TypeInformationTestBase.java
+++ b/flink-core/src/test/java/org/apache/flink/api/common/typeutils/TypeInformationTestBase.java
@@ -95,6 +95,16 @@ public abstract class TypeInformationTestBase<T extends TypeInformation<?>> exte
}
}
+ @Test
+ public void testGetTotalFields() {
+ final T[] testData = getTestData();
+ for (T typeInfo : testData) {
+ assertTrue(
+ "Number of total fields must be at least 1",
+ typeInfo.getTotalFields() > 0);
+ }
+ }
+
private static class UnrelatedTypeInfo extends TypeInformation<Object> {
@Override
diff --git a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/MissingTypeInfoTest.java b/flink-core/src/test/java/org/apache/flink/api/java/typeutils/MissingTypeInfoTest.java
index cccc14d..93ae552 100644
--- a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/MissingTypeInfoTest.java
+++ b/flink-core/src/test/java/org/apache/flink/api/java/typeutils/MissingTypeInfoTest.java
@@ -41,4 +41,9 @@ public class MissingTypeInfoTest extends TypeInformationTestBase<MissingTypeInfo
public void testSerialization() {
// this class is not intended to be serialized
}
+
+ @Override
+ public void testGetTotalFields() {
+ // getTotalFields is not meant to be called
+ }
}
diff --git a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/TypeInfoFactoryTest.java b/flink-core/src/test/java/org/apache/flink/api/java/typeutils/TypeInfoFactoryTest.java
index f055879..bae4d6c 100644
--- a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/TypeInfoFactoryTest.java
+++ b/flink-core/src/test/java/org/apache/flink/api/java/typeutils/TypeInfoFactoryTest.java
@@ -387,7 +387,7 @@ public class TypeInfoFactoryTest {
@Override
public int getTotalFields() {
- return 0;
+ return 1;
}
@Override
diff --git a/flink-queryable-state/flink-queryable-state-client-java/src/main/java/org/apache/flink/queryablestate/client/VoidNamespaceTypeInfo.java b/flink-queryable-state/flink-queryable-state-client-java/src/main/java/org/apache/flink/queryablestate/client/VoidNamespaceTypeInfo.java
index 2efb87b..f5a5c01 100644
--- a/flink-queryable-state/flink-queryable-state-client-java/src/main/java/org/apache/flink/queryablestate/client/VoidNamespaceTypeInfo.java
+++ b/flink-queryable-state/flink-queryable-state-client-java/src/main/java/org/apache/flink/queryablestate/client/VoidNamespaceTypeInfo.java
@@ -52,7 +52,7 @@ public class VoidNamespaceTypeInfo extends TypeInformation<VoidNamespace> {
@Override
public int getTotalFields() {
- return 0;
+ return 1;
}
@Override
diff --git a/flink-runtime/src/main/java/org/apache/flink/runtime/state/VoidNamespaceTypeInfo.java b/flink-runtime/src/main/java/org/apache/flink/runtime/state/VoidNamespaceTypeInfo.java
index 9917410..4bae5e4 100644
--- a/flink-runtime/src/main/java/org/apache/flink/runtime/state/VoidNamespaceTypeInfo.java
+++ b/flink-runtime/src/main/java/org/apache/flink/runtime/state/VoidNamespaceTypeInfo.java
@@ -55,7 +55,7 @@ public class VoidNamespaceTypeInfo extends TypeInformation<VoidNamespace> {
@Override
@PublicEvolving
public int getTotalFields() {
- return 0;
+ return 1;
}
@Override
diff --git a/flink-scala/src/main/scala/org/apache/flink/api/scala/typeutils/ScalaNothingTypeInfo.scala b/flink-scala/src/main/scala/org/apache/flink/api/scala/typeutils/ScalaNothingTypeInfo.scala
index bc2aabf..bc5a4eb 100644
--- a/flink-scala/src/main/scala/org/apache/flink/api/scala/typeutils/ScalaNothingTypeInfo.scala
+++ b/flink-scala/src/main/scala/org/apache/flink/api/scala/typeutils/ScalaNothingTypeInfo.scala
@@ -32,7 +32,7 @@ class ScalaNothingTypeInfo extends TypeInformation[Nothing] {
@PublicEvolving
override def getArity: Int = 0
@PublicEvolving
- override def getTotalFields: Int = 0
+ override def getTotalFields: Int = 1
@PublicEvolving
override def getTypeClass: Class[Nothing] = classOf[Nothing]
@PublicEvolving
diff --git a/flink-scala/src/main/scala/org/apache/flink/api/scala/typeutils/UnitTypeInfo.scala b/flink-scala/src/main/scala/org/apache/flink/api/scala/typeutils/UnitTypeInfo.scala
index 5d4a443..1e56794 100644
--- a/flink-scala/src/main/scala/org/apache/flink/api/scala/typeutils/UnitTypeInfo.scala
+++ b/flink-scala/src/main/scala/org/apache/flink/api/scala/typeutils/UnitTypeInfo.scala
@@ -31,7 +31,7 @@ class UnitTypeInfo extends TypeInformation[Unit] {
@PublicEvolving
override def getArity(): Int = 0
@PublicEvolving
- override def getTotalFields(): Int = 0
+ override def getTotalFields(): Int = 1
@PublicEvolving
override def getTypeClass(): Class[Unit] = classOf[Unit]
@PublicEvolving