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 2018/04/22 20:40:43 UTC
[07/17] flink git commit: [hotfix] [core] Drop hijacking of TypeHint
by OutputTag. Improve error message for OutputTag.
[hotfix] [core] Drop hijacking of TypeHint by OutputTag. Improve error message for OutputTag.
Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/32b583fe
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/32b583fe
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/32b583fe
Branch: refs/heads/master
Commit: 32b583fea88fc329af3418480f81c26cc6c538cb
Parents: 04e1344
Author: Stephan Ewen <se...@apache.org>
Authored: Tue Apr 17 20:02:22 2018 +0200
Committer: Stephan Ewen <se...@apache.org>
Committed: Sun Apr 22 16:28:34 2018 +0200
----------------------------------------------------------------------
flink-core/pom.xml | 3 +++
.../org/apache/flink/api/common/typeinfo/TypeHint.java | 7 -------
.../src/main/java/org/apache/flink/util/OutputTag.java | 13 +++++++------
3 files changed, 10 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flink/blob/32b583fe/flink-core/pom.xml
----------------------------------------------------------------------
diff --git a/flink-core/pom.xml b/flink-core/pom.xml
index aaebeb0..f860c20 100644
--- a/flink-core/pom.xml
+++ b/flink-core/pom.xml
@@ -195,6 +195,9 @@ under the License.
its new, and not conflicting/breaking -->
<exclude>org.apache.flink.api.common.serialization.DeserializationSchema</exclude>
<exclude>org.apache.flink.api.common.serialization.SerializationSchema</exclude>
+
+ <!-- leaked constructor in TypeHint -->
+ <exclude>org.apache.flink.api.common.typeinfo.TypeHint</exclude>
</excludes>
</parameter>
</configuration>
http://git-wip-us.apache.org/repos/asf/flink/blob/32b583fe/flink-core/src/main/java/org/apache/flink/api/common/typeinfo/TypeHint.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/api/common/typeinfo/TypeHint.java b/flink-core/src/main/java/org/apache/flink/api/common/typeinfo/TypeHint.java
index 5f0597c..19e8db5 100644
--- a/flink-core/src/main/java/org/apache/flink/api/common/typeinfo/TypeHint.java
+++ b/flink-core/src/main/java/org/apache/flink/api/common/typeinfo/TypeHint.java
@@ -56,13 +56,6 @@ public abstract class TypeHint<T> {
}
}
- /**
- * Creates a hint for the generic type in the class signature.
- */
- public TypeHint(Class<?> baseClass, Object instance, int genericParameterPos) {
- this.typeInfo = TypeExtractor.createTypeInfo(instance, baseClass, instance.getClass(), genericParameterPos);
- }
-
// ------------------------------------------------------------------------
/**
http://git-wip-us.apache.org/repos/asf/flink/blob/32b583fe/flink-core/src/main/java/org/apache/flink/util/OutputTag.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/util/OutputTag.java b/flink-core/src/main/java/org/apache/flink/util/OutputTag.java
index f132cb3..4126924 100644
--- a/flink-core/src/main/java/org/apache/flink/util/OutputTag.java
+++ b/flink-core/src/main/java/org/apache/flink/util/OutputTag.java
@@ -20,8 +20,8 @@ package org.apache.flink.util;
import org.apache.flink.annotation.PublicEvolving;
import org.apache.flink.api.common.functions.InvalidTypesException;
-import org.apache.flink.api.common.typeinfo.TypeHint;
import org.apache.flink.api.common.typeinfo.TypeInformation;
+import org.apache.flink.api.java.typeutils.TypeExtractor;
import java.io.IOException;
import java.io.ObjectInputStream;
@@ -61,11 +61,12 @@ public class OutputTag<T> implements Serializable {
this.id = id;
try {
- TypeHint<T> typeHint = new TypeHint<T>(OutputTag.class, this, 0) {};
- this.typeInfo = typeHint.getTypeInfo();
- } catch (InvalidTypesException e) {
- throw new InvalidTypesException("Could not determine TypeInformation for generic " +
- "OutputTag type. Did you forget to make your OutputTag an anonymous inner class?", e);
+ this.typeInfo = TypeExtractor.createTypeInfo(this, OutputTag.class, getClass(), 0);
+ }
+ catch (InvalidTypesException e) {
+ throw new InvalidTypesException("Could not determine TypeInformation for the OutputTag type. " +
+ "The most common reason is forgetting to make the OutputTag an anonymous inner class. " +
+ "It is also not possible to use generic type variables with OutputTags, such as 'Tuple2<A, B>'.", e);
}
}