mirror of
https://gitee.com/dolphinscheduler/DolphinScheduler.git
synced 2024-12-03 04:39:00 +08:00
[fix-3745][server] server get tasktype NPE exception (#3746)
This commit is contained in:
parent
a34f8296cc
commit
36d5349610
@ -55,41 +55,42 @@ public class TaskParametersUtils {
|
||||
* @return task parameters
|
||||
*/
|
||||
public static AbstractParameters getParameters(String taskType, String parameter) {
|
||||
try {
|
||||
switch (EnumUtils.getEnum(TaskType.class, taskType)) {
|
||||
case SUB_PROCESS:
|
||||
return JSONUtils.parseObject(parameter, SubProcessParameters.class);
|
||||
case SHELL:
|
||||
case WATERDROP:
|
||||
return JSONUtils.parseObject(parameter, ShellParameters.class);
|
||||
case PROCEDURE:
|
||||
return JSONUtils.parseObject(parameter, ProcedureParameters.class);
|
||||
case SQL:
|
||||
return JSONUtils.parseObject(parameter, SqlParameters.class);
|
||||
case MR:
|
||||
return JSONUtils.parseObject(parameter, MapreduceParameters.class);
|
||||
case SPARK:
|
||||
return JSONUtils.parseObject(parameter, SparkParameters.class);
|
||||
case PYTHON:
|
||||
return JSONUtils.parseObject(parameter, PythonParameters.class);
|
||||
case DEPENDENT:
|
||||
return JSONUtils.parseObject(parameter, DependentParameters.class);
|
||||
case FLINK:
|
||||
return JSONUtils.parseObject(parameter, FlinkParameters.class);
|
||||
case HTTP:
|
||||
return JSONUtils.parseObject(parameter, HttpParameters.class);
|
||||
case DATAX:
|
||||
return JSONUtils.parseObject(parameter, DataxParameters.class);
|
||||
case CONDITIONS:
|
||||
return JSONUtils.parseObject(parameter, ConditionsParameters.class);
|
||||
case SQOOP:
|
||||
return JSONUtils.parseObject(parameter, SqoopParameters.class);
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
TaskType anEnum = EnumUtils.getEnum(TaskType.class, taskType);
|
||||
if (anEnum == null) {
|
||||
logger.error("not support task type: {}", taskType);
|
||||
return null;
|
||||
}
|
||||
return null;
|
||||
switch (anEnum) {
|
||||
case SUB_PROCESS:
|
||||
return JSONUtils.parseObject(parameter, SubProcessParameters.class);
|
||||
case SHELL:
|
||||
case WATERDROP:
|
||||
return JSONUtils.parseObject(parameter, ShellParameters.class);
|
||||
case PROCEDURE:
|
||||
return JSONUtils.parseObject(parameter, ProcedureParameters.class);
|
||||
case SQL:
|
||||
return JSONUtils.parseObject(parameter, SqlParameters.class);
|
||||
case MR:
|
||||
return JSONUtils.parseObject(parameter, MapreduceParameters.class);
|
||||
case SPARK:
|
||||
return JSONUtils.parseObject(parameter, SparkParameters.class);
|
||||
case PYTHON:
|
||||
return JSONUtils.parseObject(parameter, PythonParameters.class);
|
||||
case DEPENDENT:
|
||||
return JSONUtils.parseObject(parameter, DependentParameters.class);
|
||||
case FLINK:
|
||||
return JSONUtils.parseObject(parameter, FlinkParameters.class);
|
||||
case HTTP:
|
||||
return JSONUtils.parseObject(parameter, HttpParameters.class);
|
||||
case DATAX:
|
||||
return JSONUtils.parseObject(parameter, DataxParameters.class);
|
||||
case CONDITIONS:
|
||||
return JSONUtils.parseObject(parameter, ConditionsParameters.class);
|
||||
case SQOOP:
|
||||
return JSONUtils.parseObject(parameter, SqoopParameters.class);
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -30,7 +30,6 @@ import org.apache.dolphinscheduler.server.worker.task.shell.ShellTask;
|
||||
import org.apache.dolphinscheduler.server.worker.task.spark.SparkTask;
|
||||
import org.apache.dolphinscheduler.server.worker.task.sql.SqlTask;
|
||||
import org.apache.dolphinscheduler.server.worker.task.sqoop.SqoopTask;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
|
||||
/**
|
||||
@ -46,7 +45,12 @@ public class TaskManager {
|
||||
* @throws IllegalArgumentException illegal argument exception
|
||||
*/
|
||||
public static AbstractTask newTask(TaskExecutionContext taskExecutionContext, Logger logger) throws IllegalArgumentException {
|
||||
switch (EnumUtils.getEnum(TaskType.class,taskExecutionContext.getTaskType())) {
|
||||
TaskType anEnum = EnumUtils.getEnum(TaskType.class, taskExecutionContext.getTaskType());
|
||||
if (anEnum == null) {
|
||||
logger.error("not support task type: {}", taskExecutionContext.getTaskType());
|
||||
throw new IllegalArgumentException("not support task type");
|
||||
}
|
||||
switch (anEnum) {
|
||||
case SHELL:
|
||||
case WATERDROP:
|
||||
return new ShellTask(taskExecutionContext, logger);
|
||||
@ -69,7 +73,7 @@ public class TaskManager {
|
||||
case SQOOP:
|
||||
return new SqoopTask(taskExecutionContext, logger);
|
||||
default:
|
||||
logger.error("unsupport task type: {}", taskExecutionContext.getTaskType());
|
||||
logger.error("not support task type: {}", taskExecutionContext.getTaskType());
|
||||
throw new IllegalArgumentException("not support task type");
|
||||
}
|
||||
}
|
||||
|
@ -38,6 +38,8 @@ import org.slf4j.LoggerFactory;
|
||||
@PrepareForTest({SpringApplicationContext.class})
|
||||
public class TaskManagerTest {
|
||||
|
||||
private static Logger logger = LoggerFactory.getLogger(TaskManagerTest.class);
|
||||
|
||||
private TaskExecutionContext taskExecutionContext;
|
||||
|
||||
private Logger taskLogger;
|
||||
@ -95,9 +97,18 @@ public class TaskManagerTest {
|
||||
Assert.assertNotNull(TaskManager.newTask(taskExecutionContext,taskLogger));
|
||||
taskExecutionContext.setTaskType("SQOOP");
|
||||
Assert.assertNotNull(TaskManager.newTask(taskExecutionContext,taskLogger));
|
||||
//taskExecutionContext.setTaskType(null);
|
||||
//Assert.assertNull(TaskManager.newTask(taskExecutionContext,taskLogger));
|
||||
//taskExecutionContext.setTaskType("XXX");
|
||||
//Assert.assertNotNull(TaskManager.newTask(taskExecutionContext,taskLogger));
|
||||
|
||||
}
|
||||
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
public void testNewTaskIsNull() {
|
||||
taskExecutionContext.setTaskType(null);
|
||||
TaskManager.newTask(taskExecutionContext,taskLogger);
|
||||
}
|
||||
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
public void testNewTaskIsNotExists() {
|
||||
taskExecutionContext.setTaskType("XXX");
|
||||
TaskManager.newTask(taskExecutionContext,taskLogger);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user