Simone Robutti created FLINK-3563:
-------------------------------------

             Summary: .returns() doesn't compile when using .map() with a 
custom MapFunction
                 Key: FLINK-3563
                 URL: https://issues.apache.org/jira/browse/FLINK-3563
             Project: Flink
          Issue Type: Bug
          Components: Type Serialization System
    Affects Versions: 0.10.1
            Reporter: Simone Robutti
            Priority: Minor


Defined a DummyMapFunction that goes from a java Map to another java Map like 
this:

{code:title=DummyMapFunction.scalaborderStyle=solid}
class DummyMapFunction() extends MapFunction[java.util.Map[String, Any], 
java.util.Map[FieldName, Any]] {
  override def map(input: java.util.Map[String, Any]): java.util.Map[FieldName, 
Any] = {
    val result: java.util.Map[FieldName, Any] = new 
java.util.HashMap[FieldName, Any]()
    result
  }
}
{code}

and trying to use it with a map:

{code:title=Main.java}
DummyMapFunction operator = new DummyMapFunction();

DataSource<Map<String, Object>> dataset = env.fromCollection(input);
        List<java.util.Map<FieldName, Object>> collectedResult = 
dataset.map(operator).returns(java.util.Map.class).collect();
{code}

the returns call doesn't compile because it can't resolve the returns method 
with the parameter.

But if insted of creating a variable of type DummyMapFunction I create a

{code}
MapFunction operator=new DummyMapFuction();
{code}

or I explicitly cast the variable to a MapFunction, it compiles and work 
flawlessly.

This is a trick that works but I think is an unexpected behaviour. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to