diff --git a/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/task/TaskProcessorFactory.java b/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/task/TaskProcessorFactory.java index 4c732a0325000c92999a5f86e2dbab2f17f3115a..90f5ea84241dc95791293fc1fad9f8941134fed3 100644 --- a/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/task/TaskProcessorFactory.java +++ b/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/task/TaskProcessorFactory.java @@ -47,7 +47,8 @@ public final class TaskProcessorFactory { static { for (ITaskProcessor iTaskProcessor : ServiceLoader.load(ITaskProcessor.class)) { try { - PROCESS_MAP.put(iTaskProcessor.getType(), (Constructor) iTaskProcessor.getClass().getConstructor()); + if (PROCESS_MAP.get(iTaskProcessor.getType()) == null ) + PROCESS_MAP.put(iTaskProcessor.getType(), (Constructor) iTaskProcessor.getClass().getConstructor()); } catch (NoSuchMethodException e) { throw new IllegalArgumentException("The task processor should has a no args constructor", e); }