This is an automated email from the ASF dual-hosted git repository.

dwysakowicz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git

commit 250a6c1ca911535efb5a03433e3f95daf8be3ff7
Author: Dawid Wysakowicz <[email protected]>
AuthorDate: Wed Jul 29 13:53:54 2020 +0200

    [hotfix] Remove dead code in TypeExtractor
---
 .../flink/api/common/typeinfo/TypeInfoFactory.java |  4 +-
 .../flink/api/java/typeutils/TypeExtractor.java    | 72 ++++------------------
 2 files changed, 13 insertions(+), 63 deletions(-)

diff --git 
a/flink-core/src/main/java/org/apache/flink/api/common/typeinfo/TypeInfoFactory.java
 
b/flink-core/src/main/java/org/apache/flink/api/common/typeinfo/TypeInfoFactory.java
index 898b05e..54f9335 100644
--- 
a/flink-core/src/main/java/org/apache/flink/api/common/typeinfo/TypeInfoFactory.java
+++ 
b/flink-core/src/main/java/org/apache/flink/api/common/typeinfo/TypeInfoFactory.java
@@ -19,7 +19,6 @@
 package org.apache.flink.api.common.typeinfo;
 
 import org.apache.flink.annotation.Public;
-import org.apache.flink.api.java.typeutils.TypeExtractor;
 
 import java.lang.reflect.Type;
 import java.util.Map;
@@ -29,8 +28,7 @@ import java.util.Map;
  * plugging-in user-defined {@link TypeInformation} into the Flink type 
system. The factory is
  * called during the type extraction phase if the corresponding type has been 
annotated with
  * {@link TypeInfo}. In a hierarchy of types the closest factory will be 
chosen while traversing
- * upwards, however, a globally registered factory has highest precedence
- * (see {@link TypeExtractor#registerFactory(Type, Class)}).
+ * upwards.
  *
  * @param <T> type for which {@link TypeInformation} is created
  */
diff --git 
a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/TypeExtractor.java
 
b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/TypeExtractor.java
index adcfdbb..b94dd5f 100644
--- 
a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/TypeExtractor.java
+++ 
b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/TypeExtractor.java
@@ -18,7 +18,6 @@
 
 package org.apache.flink.api.java.typeutils;
 
-import org.apache.commons.lang3.ClassUtils;
 import org.apache.flink.annotation.Internal;
 import org.apache.flink.annotation.Public;
 import org.apache.flink.annotation.PublicEvolving;
@@ -53,6 +52,8 @@ import org.apache.flink.types.Row;
 import org.apache.flink.types.Value;
 import org.apache.flink.util.InstantiationUtil;
 import org.apache.flink.util.Preconditions;
+
+import org.apache.commons.lang3.ClassUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -72,14 +73,14 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 
-import static 
org.apache.flink.api.java.typeutils.TypeExtractionUtils.getTypeHierarchy;
-import static 
org.apache.flink.api.java.typeutils.TypeExtractionUtils.hasSuperclass;
-import static org.apache.flink.util.Preconditions.checkNotNull;
 import static 
org.apache.flink.api.java.typeutils.TypeExtractionUtils.checkAndExtractLambda;
 import static 
org.apache.flink.api.java.typeutils.TypeExtractionUtils.getAllDeclaredMethods;
+import static 
org.apache.flink.api.java.typeutils.TypeExtractionUtils.getTypeHierarchy;
+import static 
org.apache.flink.api.java.typeutils.TypeExtractionUtils.hasSuperclass;
 import static 
org.apache.flink.api.java.typeutils.TypeExtractionUtils.isClassType;
 import static 
org.apache.flink.api.java.typeutils.TypeExtractionUtils.sameTypeVars;
 import static 
org.apache.flink.api.java.typeutils.TypeExtractionUtils.typeToClass;
+import static org.apache.flink.util.Preconditions.checkNotNull;
 
 /**
  * A utility for reflection analysis on classes, to determine the return type 
of implementations of transformation
@@ -132,34 +133,6 @@ public class TypeExtractor {
        }
 
        // 
--------------------------------------------------------------------------------------------
-       //  TypeInfoFactory registry
-       // 
--------------------------------------------------------------------------------------------
-
-       private static Map<Type, Class<? extends TypeInfoFactory>> 
registeredTypeInfoFactories = new HashMap<>();
-
-       /**
-        * Registers a type information factory globally for a certain type. 
Every following type extraction
-        * operation will use the provided factory for this type. The factory 
will have highest precedence
-        * for this type. In a hierarchy of types the registered factory has 
higher precedence than annotations
-        * at the same level but lower precedence than factories defined down 
the hierarchy.
-        *
-        * @param t type for which a new factory is registered
-        * @param factory type information factory that will produce {@link 
TypeInformation}
-        */
-       private static void registerFactory(Type t, Class<? extends 
TypeInfoFactory> factory) {
-               Preconditions.checkNotNull(t, "Type parameter must not be 
null.");
-               Preconditions.checkNotNull(factory, "Factory parameter must not 
be null.");
-
-               if (!TypeInfoFactory.class.isAssignableFrom(factory)) {
-                       throw new IllegalArgumentException("Class is not a 
TypeInfoFactory.");
-               }
-               if (registeredTypeInfoFactories.containsKey(t)) {
-                       throw new InvalidTypesException("A TypeInfoFactory for 
type '" + t + "' is already registered.");
-               }
-               registeredTypeInfoFactories.put(t, factory);
-       }
-
-       // 
--------------------------------------------------------------------------------------------
        //  Function specific methods
        // 
--------------------------------------------------------------------------------------------
 
@@ -1498,22 +1471,6 @@ public class TypeExtractor {
                }
        }
 
-       private static void validateInputContainsExecutable(LambdaExecutable 
exec, TypeInformation<?> typeInfo) {
-               List<Method> methods = 
getAllDeclaredMethods(typeInfo.getTypeClass());
-               for (Method method : methods) {
-                       if (exec.executablesEquals(method)) {
-                               return;
-                       }
-               }
-               Constructor<?>[] constructors = 
typeInfo.getTypeClass().getDeclaredConstructors();
-               for (Constructor<?> constructor : constructors) {
-                       if (exec.executablesEquals(constructor)) {
-                               return;
-                       }
-               }
-               throw new InvalidTypesException("Type contains no executable '" 
+ exec.getName() + "'.");
-       }
-
        // 
--------------------------------------------------------------------------------------------
        //  Utility methods
        // 
--------------------------------------------------------------------------------------------
@@ -1524,19 +1481,14 @@ public class TypeExtractor {
        @Internal
        public static <OUT> TypeInfoFactory<OUT> getTypeInfoFactory(Type t) {
                final Class<?> factoryClass;
-               if (registeredTypeInfoFactories.containsKey(t)) {
-                       factoryClass = registeredTypeInfoFactories.get(t);
+               if (!isClassType(t) || 
!typeToClass(t).isAnnotationPresent(TypeInfo.class)) {
+                       return null;
                }
-               else {
-                       if (!isClassType(t) || 
!typeToClass(t).isAnnotationPresent(TypeInfo.class)) {
-                               return null;
-                       }
-                       final TypeInfo typeInfoAnnotation = 
typeToClass(t).getAnnotation(TypeInfo.class);
-                       factoryClass = typeInfoAnnotation.value();
-                       // check for valid factory class
-                       if 
(!TypeInfoFactory.class.isAssignableFrom(factoryClass)) {
-                               throw new InvalidTypesException("TypeInfo 
annotation does not specify a valid TypeInfoFactory.");
-                       }
+               final TypeInfo typeInfoAnnotation = 
typeToClass(t).getAnnotation(TypeInfo.class);
+               factoryClass = typeInfoAnnotation.value();
+               // check for valid factory class
+               if (!TypeInfoFactory.class.isAssignableFrom(factoryClass)) {
+                       throw new InvalidTypesException("TypeInfo annotation 
does not specify a valid TypeInfoFactory.");
                }
 
                // instantiate

Reply via email to