Fabian Hueske created FLINK-1438: ------------------------------------ Summary: ClassCastException for Custom InputSplit in local mode Key: FLINK-1438 URL: https://issues.apache.org/jira/browse/FLINK-1438 Project: Flink Issue Type: Bug Components: JobManager Affects Versions: 0.8 Reporter: Fabian Hueske Priority: Minor
Jobs with custom InputSplits fail with a ClassCastException such as {{org.apache.flink.examples.java.misc.CustomSplitTestJob$TestFileInputSplit cannot be cast to org.apache.flink.examples.java.misc.CustomSplitTestJob$TestFileInputSplit}} if executed on a local setup. This issue is probably related to different ClassLoaders used by the JobManager when InputSplits are generated and when they are handed to the InputFormat by the TaskManager. Moving the class of the custom InputSplit into the {{./lib}} folder and removing it from the job's makes the job work. To reproduce the bug, run the following job on a local setup. {code} public class CustomSplitTestJob { public static void main(String[] args) throws Exception { ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); DataSet<String> x = env.createInput(new TestFileInputFormat()); x.print(); env.execute(); } public static class TestFileInputFormat implements InputFormat<String,TestFileInputSplit> { @Override public void configure(Configuration parameters) { } @Override public BaseStatistics getStatistics(BaseStatistics cachedStatistics) throws IOException { return null; } @Override public TestFileInputSplit[] createInputSplits(int minNumSplits) throws IOException { return new TestFileInputSplit[]{new TestFileInputSplit()}; } @Override public InputSplitAssigner getInputSplitAssigner(TestFileInputSplit[] inputSplits) { return new LocatableInputSplitAssigner(inputSplits); } @Override public void open(TestFileInputSplit split) throws IOException { } @Override public boolean reachedEnd() throws IOException { return false; } @Override public String nextRecord(String reuse) throws IOException { return null; } @Override public void close() throws IOException { } } public static class TestFileInputSplit extends FileInputSplit { } } {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)