KYLIN-3194 Fix BrokenExecutable parsing issue
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/da14ee94 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/da14ee94 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/da14ee94 Branch: refs/heads/master Commit: da14ee94bcc5b91fabf99954b88819cc513effea Parents: f797c84 Author: nichunen <chunen...@kyligence.io> Authored: Sun Jan 28 15:12:17 2018 +0800 Committer: Li Yang <liy...@apache.org> Committed: Sun Feb 4 08:44:45 2018 +0800 ---------------------------------------------------------------------- .../kylin/job/execution/ExecutableManager.java | 26 +++++++++++--------- 1 file changed, 15 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/da14ee94/core-job/src/main/java/org/apache/kylin/job/execution/ExecutableManager.java ---------------------------------------------------------------------- diff --git a/core-job/src/main/java/org/apache/kylin/job/execution/ExecutableManager.java b/core-job/src/main/java/org/apache/kylin/job/execution/ExecutableManager.java index 0069c03..abcb048 100644 --- a/core-job/src/main/java/org/apache/kylin/job/execution/ExecutableManager.java +++ b/core-job/src/main/java/org/apache/kylin/job/execution/ExecutableManager.java @@ -501,20 +501,24 @@ public class ExecutableManager { result.setId(executablePO.getUuid()); result.setName(executablePO.getName()); result.setParams(executablePO.getParams()); - List<ExecutablePO> tasks = executablePO.getTasks(); - if (tasks != null && !tasks.isEmpty()) { - Preconditions.checkArgument(result instanceof ChainedExecutable); - for (ExecutablePO subTask : tasks) { - ((ChainedExecutable) result).addTask(parseTo(subTask)); + + if (!(result instanceof BrokenExecutable)) { + List<ExecutablePO> tasks = executablePO.getTasks(); + if (tasks != null && !tasks.isEmpty()) { + Preconditions.checkArgument(result instanceof ChainedExecutable); + for (ExecutablePO subTask : tasks) { + ((ChainedExecutable) result).addTask(parseTo(subTask)); + } } - } - List<ExecutablePO> tasksForCheck = executablePO.getTasksForCheck(); - if (tasksForCheck != null && !tasksForCheck.isEmpty()) { - Preconditions.checkArgument(result instanceof CheckpointExecutable); - for (ExecutablePO subTaskForCheck : tasksForCheck) { - ((CheckpointExecutable) result).addTaskForCheck(parseTo(subTaskForCheck)); + List<ExecutablePO> tasksForCheck = executablePO.getTasksForCheck(); + if (tasksForCheck != null && !tasksForCheck.isEmpty()) { + Preconditions.checkArgument(result instanceof CheckpointExecutable); + for (ExecutablePO subTaskForCheck : tasksForCheck) { + ((CheckpointExecutable) result).addTaskForCheck(parseTo(subTaskForCheck)); + } } } + return result; }