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 <[email protected]>
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

Reply via email to