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 2015/09/18 13:49:01 UTC
[3/7] flink git commit: [FLINK-2557] [core] TypeExtractor properly
returns MissingTypeInfo
[FLINK-2557] [core] TypeExtractor properly returns MissingTypeInfo
This closes #1045
Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/3fe9145d
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/3fe9145d
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/3fe9145d
Branch: refs/heads/master
Commit: 3fe9145df37fd353229d1de297cc134f3a553c07
Parents: 6dcc38d
Author: zentol <s....@web.de>
Authored: Sun Aug 23 22:06:34 2015 +0200
Committer: Stephan Ewen <se...@apache.org>
Committed: Fri Sep 18 11:40:28 2015 +0200
----------------------------------------------------------------------
.../flink/api/java/typeutils/TypeExtractor.java | 6 +++---
.../java/type/extractor/TypeExtractorTest.java | 20 ++++++++++++++++++++
2 files changed, 23 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flink/blob/3fe9145d/flink-java/src/main/java/org/apache/flink/api/java/typeutils/TypeExtractor.java
----------------------------------------------------------------------
diff --git a/flink-java/src/main/java/org/apache/flink/api/java/typeutils/TypeExtractor.java b/flink-java/src/main/java/org/apache/flink/api/java/typeutils/TypeExtractor.java
index 0196b5d..252842e 100644
--- a/flink-java/src/main/java/org/apache/flink/api/java/typeutils/TypeExtractor.java
+++ b/flink-java/src/main/java/org/apache/flink/api/java/typeutils/TypeExtractor.java
@@ -704,8 +704,8 @@ public class TypeExtractor {
return parameter;
}
- throw new IllegalArgumentException("The types of the interface " + baseClass.getName() + " could not be inferred. " +
- "Support for synthetic interfaces, lambdas, and generic types is limited at this point.");
+ throw new InvalidTypesException("The types of the interface " + baseClass.getName() + " could not be inferred. " +
+ "Support for synthetic interfaces, lambdas, and generic or raw types is limited at this point");
}
private static Type getParameterTypeFromGenericType(Class<?> baseClass, ArrayList<Type> typeHierarchy, Type t, int pos) {
@@ -755,7 +755,7 @@ public class TypeExtractor {
try {
inType = getParameterType(baseClass, typeHierarchy, clazz, inputParamPos);
}
- catch (IllegalArgumentException e) {
+ catch (InvalidTypesException e) {
return; // skip input validation e.g. for raw types
}
http://git-wip-us.apache.org/repos/asf/flink/blob/3fe9145d/flink-java/src/test/java/org/apache/flink/api/java/type/extractor/TypeExtractorTest.java
----------------------------------------------------------------------
diff --git a/flink-java/src/test/java/org/apache/flink/api/java/type/extractor/TypeExtractorTest.java b/flink-java/src/test/java/org/apache/flink/api/java/type/extractor/TypeExtractorTest.java
index 7f0cf5b..eae767d 100644
--- a/flink-java/src/test/java/org/apache/flink/api/java/type/extractor/TypeExtractorTest.java
+++ b/flink-java/src/test/java/org/apache/flink/api/java/type/extractor/TypeExtractorTest.java
@@ -38,6 +38,7 @@ import org.apache.flink.api.common.typeinfo.BasicTypeInfo;
import org.apache.flink.api.common.typeinfo.PrimitiveArrayTypeInfo;
import org.apache.flink.api.common.typeinfo.TypeInformation;
import org.apache.flink.api.common.typeutils.CompositeType.FlatFieldDescriptor;
+import org.apache.flink.api.java.ExecutionEnvironment;
import org.apache.flink.api.java.functions.KeySelector;
import org.apache.flink.api.java.tuple.Tuple;
import org.apache.flink.api.java.tuple.Tuple0;
@@ -848,6 +849,25 @@ public class TypeExtractorTest {
}
}
+ @SuppressWarnings({"unchecked", "rawtypes"})
+ @Test
+ public void testFunctionWithMissingGenericsAndReturns() {
+ RichMapFunction function = new RichMapFunction() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public Object map(Object value) throws Exception {
+ return null;
+ }
+ };
+
+ TypeInformation info = ExecutionEnvironment.getExecutionEnvironment()
+ .fromElements("arbitrary", "data")
+ .map(function).returns("String").getResultType();
+
+ Assert.assertEquals(TypeInfoParser.parse("String"), info);
+ }
+
@SuppressWarnings({ "rawtypes", "unchecked" })
@Test
public void testFunctionDependingOnInputAsSuperclass() {