This is an automated email from the ASF dual-hosted git repository.
gaojun2048 pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git
The following commit(s) were added to refs/heads/dev by this push:
new d7d756e Fix DataX and Sqoop Task execute NullPointerException (#9192)
d7d756e is described below
commit d7d756e7b0165bfcdc2e0bffcfcb45892e23feb5
Author: Kerwin <[email protected]>
AuthorDate: Sat Mar 26 20:15:41 2022 +0800
Fix DataX and Sqoop Task execute NullPointerException (#9192)
---
.../master/runner/task/BaseTaskProcessor.java | 3 ++
.../plugin/task/datax/DataxParameters.java | 13 ++++++-
.../task/sqoop/parameter/SqoopParameters.java | 45 +++++++++++++---------
3 files changed, 41 insertions(+), 20 deletions(-)
diff --git
a/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/task/BaseTaskProcessor.java
b/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/task/BaseTaskProcessor.java
index 359984e..c53a02e 100644
---
a/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/task/BaseTaskProcessor.java
+++
b/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/task/BaseTaskProcessor.java
@@ -317,6 +317,9 @@ public abstract class BaseTaskProcessor implements
ITaskProcessor {
map.forEach((code, parameters) -> {
DataSource datasource = processService.findDataSourceById(code);
+ if (Objects.isNull(datasource)) {
+ return;
+ }
DataSourceParameters dataSourceParameters = new
DataSourceParameters();
dataSourceParameters.setType(datasource.getType());
dataSourceParameters.setConnectionParams(datasource.getConnectionParams());
diff --git
a/dolphinscheduler-task-plugin/dolphinscheduler-task-datax/src/main/java/org/apache/dolphinscheduler/plugin/task/datax/DataxParameters.java
b/dolphinscheduler-task-plugin/dolphinscheduler-task-datax/src/main/java/org/apache/dolphinscheduler/plugin/task/datax/DataxParameters.java
index e845082..d6fd449 100644
---
a/dolphinscheduler-task-plugin/dolphinscheduler-task-datax/src/main/java/org/apache/dolphinscheduler/plugin/task/datax/DataxParameters.java
+++
b/dolphinscheduler-task-plugin/dolphinscheduler-task-datax/src/main/java/org/apache/dolphinscheduler/plugin/task/datax/DataxParameters.java
@@ -256,17 +256,26 @@ public class DataxParameters extends AbstractParameters {
@Override
public ResourceParametersHelper getResources() {
ResourceParametersHelper resources = super.getResources();
+
+ if (customConfig == Flag.YES.ordinal()) {
+ return resources;
+ }
resources.put(ResourceType.DATASOURCE, dataSource);
resources.put(ResourceType.DATASOURCE, dataTarget);
return resources;
}
public DataxTaskExecutionContext
generateExtendedContext(ResourceParametersHelper parametersHelper) {
- DataSourceParameters dbSource = (DataSourceParameters)
parametersHelper.getResourceParameters(ResourceType.DATASOURCE, dataSource);
- DataSourceParameters dbTarget = (DataSourceParameters)
parametersHelper.getResourceParameters(ResourceType.DATASOURCE, dataTarget);
DataxTaskExecutionContext dataxTaskExecutionContext = new
DataxTaskExecutionContext();
+ if (customConfig == Flag.YES.ordinal()) {
+ return dataxTaskExecutionContext;
+ }
+
+ DataSourceParameters dbSource = (DataSourceParameters)
parametersHelper.getResourceParameters(ResourceType.DATASOURCE, dataSource);
+ DataSourceParameters dbTarget = (DataSourceParameters)
parametersHelper.getResourceParameters(ResourceType.DATASOURCE, dataTarget);
+
if (Objects.nonNull(dbSource)) {
dataxTaskExecutionContext.setDataSourceId(dataSource);
dataxTaskExecutionContext.setSourcetype(dbSource.getType());
diff --git
a/dolphinscheduler-task-plugin/dolphinscheduler-task-sqoop/src/main/java/org/apache/dolphinscheduler/plugin/task/sqoop/parameter/SqoopParameters.java
b/dolphinscheduler-task-plugin/dolphinscheduler-task-sqoop/src/main/java/org/apache/dolphinscheduler/plugin/task/sqoop/parameter/SqoopParameters.java
index 3a7f31f..b6019aa 100644
---
a/dolphinscheduler-task-plugin/dolphinscheduler-task-sqoop/src/main/java/org/apache/dolphinscheduler/plugin/task/sqoop/parameter/SqoopParameters.java
+++
b/dolphinscheduler-task-plugin/dolphinscheduler-task-sqoop/src/main/java/org/apache/dolphinscheduler/plugin/task/sqoop/parameter/SqoopParameters.java
@@ -206,37 +206,46 @@ public class SqoopParameters extends AbstractParameters {
@Override
public ResourceParametersHelper getResources() {
ResourceParametersHelper resources = super.getResources();
- if (SqoopJobType.TEMPLATE.getDescp().equals(this.getJobType())) {
- SourceMysqlParameter sourceMysqlParameter =
JSONUtils.parseObject(this.getSourceParams(), SourceMysqlParameter.class);
- TargetMysqlParameter targetMysqlParameter =
JSONUtils.parseObject(this.getTargetParams(), TargetMysqlParameter.class);
+ if (!SqoopJobType.TEMPLATE.getDescp().equals(this.getJobType())) {
+ return resources;
+ }
+
+ SourceMysqlParameter sourceMysqlParameter =
JSONUtils.parseObject(this.getSourceParams(), SourceMysqlParameter.class);
+ if (sourceMysqlParameter.getSrcDatasource() != 0) {
resources.put(ResourceType.DATASOURCE,
sourceMysqlParameter.getSrcDatasource());
+ }
+
+ TargetMysqlParameter targetMysqlParameter =
JSONUtils.parseObject(this.getTargetParams(), TargetMysqlParameter.class);
+ if (targetMysqlParameter.getTargetDatasource() != 0) {
resources.put(ResourceType.DATASOURCE,
targetMysqlParameter.getTargetDatasource());
}
+
return resources;
}
public SqoopTaskExecutionContext
generateExtendedContext(ResourceParametersHelper parametersHelper) {
SqoopTaskExecutionContext sqoopTaskExecutionContext = new
SqoopTaskExecutionContext();
+ if (!SqoopJobType.TEMPLATE.getDescp().equals(this.getJobType())) {
+ return sqoopTaskExecutionContext;
+ }
- if (SqoopJobType.TEMPLATE.getDescp().equals(this.getJobType())) {
- SourceMysqlParameter sourceMysqlParameter =
JSONUtils.parseObject(this.getSourceParams(), SourceMysqlParameter.class);
- TargetMysqlParameter targetMysqlParameter =
JSONUtils.parseObject(this.getTargetParams(), TargetMysqlParameter.class);
+ SourceMysqlParameter sourceMysqlParameter =
JSONUtils.parseObject(this.getSourceParams(), SourceMysqlParameter.class);
+ TargetMysqlParameter targetMysqlParameter =
JSONUtils.parseObject(this.getTargetParams(), TargetMysqlParameter.class);
- DataSourceParameters dataSource = (DataSourceParameters)
parametersHelper.getResourceParameters(ResourceType.DATASOURCE,
sourceMysqlParameter.getSrcDatasource());
- DataSourceParameters dataTarget = (DataSourceParameters)
parametersHelper.getResourceParameters(ResourceType.DATASOURCE,
targetMysqlParameter.getTargetDatasource());
+ DataSourceParameters dataSource = (DataSourceParameters)
parametersHelper.getResourceParameters(ResourceType.DATASOURCE,
sourceMysqlParameter.getSrcDatasource());
+ DataSourceParameters dataTarget = (DataSourceParameters)
parametersHelper.getResourceParameters(ResourceType.DATASOURCE,
targetMysqlParameter.getTargetDatasource());
- if (Objects.nonNull(dataSource)) {
-
sqoopTaskExecutionContext.setDataSourceId(sourceMysqlParameter.getSrcDatasource());
- sqoopTaskExecutionContext.setSourcetype(dataSource.getType());
-
sqoopTaskExecutionContext.setSourceConnectionParams(dataSource.getConnectionParams());
- }
+ if (Objects.nonNull(dataSource)) {
+
sqoopTaskExecutionContext.setDataSourceId(sourceMysqlParameter.getSrcDatasource());
+ sqoopTaskExecutionContext.setSourcetype(dataSource.getType());
+
sqoopTaskExecutionContext.setSourceConnectionParams(dataSource.getConnectionParams());
+ }
- if (Objects.nonNull(dataTarget)) {
-
sqoopTaskExecutionContext.setDataTargetId(targetMysqlParameter.getTargetDatasource());
- sqoopTaskExecutionContext.setTargetType(dataTarget.getType());
-
sqoopTaskExecutionContext.setTargetConnectionParams(dataTarget.getConnectionParams());
- }
+ if (Objects.nonNull(dataTarget)) {
+
sqoopTaskExecutionContext.setDataTargetId(targetMysqlParameter.getTargetDatasource());
+ sqoopTaskExecutionContext.setTargetType(dataTarget.getType());
+
sqoopTaskExecutionContext.setTargetConnectionParams(dataTarget.getConnectionParams());
}
return sqoopTaskExecutionContext;