[ https://issues.apache.org/jira/browse/FLINK-2135?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Robert Metzger resolved FLINK-2135. ----------------------------------- Resolution: Fixed Fix Version/s: 0.9 Resolved in http://git-wip-us.apache.org/repos/asf/flink/commit/0081fb2e > Java plan translation fails with ClassCastException (probably in first()) > ------------------------------------------------------------------------- > > Key: FLINK-2135 > URL: https://issues.apache.org/jira/browse/FLINK-2135 > Project: Flink > Issue Type: Bug > Components: Java API > Affects Versions: 0.9 > Reporter: Robert Metzger > Assignee: Robert Metzger > Fix For: 0.9 > > > A user reported the following error > {code} > Exception in thread "main" java.lang.ClassCastException: > org.apache.flink.api.java.functions.FirstReducer cannot be cast to > org.apache.flink.api.common.functions.RichGroupReduceFunction > at > org.apache.flink.api.java.operators.translation.PlanUnwrappingSortedReduceGroupOperator.<init>(PlanUnwrappingSortedReduceGroupOperator.java:40) > at > org.apache.flink.api.java.operators.GroupReduceOperator.translateSelectorFunctionSortedReducer(GroupReduceOperator.java:278) > at > org.apache.flink.api.java.operators.GroupReduceOperator.translateToDataFlow(GroupReduceOperator.java:177) > at > org.apache.flink.api.java.operators.GroupReduceOperator.translateToDataFlow(GroupReduceOperator.java:50) > at > org.apache.flink.api.java.operators.OperatorTranslation.translateSingleInputOperator(OperatorTranslation.java:124) > at > org.apache.flink.api.java.operators.OperatorTranslation.translate(OperatorTranslation.java:86) > at > org.apache.flink.api.java.operators.OperatorTranslation.translateSingleInputOperator(OperatorTranslation.java:122) > at > org.apache.flink.api.java.operators.OperatorTranslation.translate(OperatorTranslation.java:86) > at > org.apache.flink.api.java.operators.OperatorTranslation.translateSingleInputOperator(OperatorTranslation.java:122) > at > org.apache.flink.api.java.operators.OperatorTranslation.translate(OperatorTranslation.java:86) > at > org.apache.flink.api.java.operators.OperatorTranslation.translate(OperatorTranslation.java:61) > at > org.apache.flink.api.java.operators.OperatorTranslation.translateToPlan(OperatorTranslation.java:49) > at > org.apache.flink.api.java.ExecutionEnvironment.createProgramPlan(ExecutionEnvironment.java:925) > at > org.apache.flink.api.java.ExecutionEnvironment.createProgramPlan(ExecutionEnvironment.java:893) > at > org.apache.flink.api.java.LocalEnvironment.execute(LocalEnvironment.java:50) > at > org.apache.flink.api.java.ExecutionEnvironment.execute(ExecutionEnvironment.java:789) > at org.apache.flink.api.java.DataSet.collect(DataSet.java:411) > at org.apache.flink.api.java.DataSet.print(DataSet.java:1346) > at com.dataartisans.GroupReduceBug.main(GroupReduceBug.java:43) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140) > {code} > It is reproducible with the following code > {code} > ExecutionEnvironment ee = > ExecutionEnvironment.getExecutionEnvironment(); > DataSet<String> b = ee.fromElements("a", "b"); > GroupReduceOperator<String, String> a = b.groupBy(new > KeySelector<String, Long>() { > @Override > public Long getKey(String value) throws Exception { > return 1L; > } > }).sortGroup(new KeySelector<String, Double>() { > @Override > public Double getKey(String value) throws Exception { > return 1.0; > } > }, Order.DESCENDING).first(10); > a.print(); > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)