This is an automated email from the ASF dual-hosted git repository.

zhongjiajie pushed a commit to branch 3.0.3-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git

commit 31296afad4b1c6480487da9af6b53643273c0a89
Author: Kerwin <[email protected]>
AuthorDate: Wed Oct 19 09:43:36 2022 +0800

    Fix timing scheduling trigger master service report to get command 
parameter null pointer exception (#12419)
    
    (cherry picked from commit a8e23008acdebd99811271611a15e83a9a7d8d92)
---
 .../service/process/ProcessServiceImpl.java        | 22 ++++++++++++----------
 .../service/quartz/ProcessScheduleJob.java         |  2 +-
 2 files changed, 13 insertions(+), 11 deletions(-)

diff --git 
a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessServiceImpl.java
 
b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessServiceImpl.java
index c552740021..08f33e5619 100644
--- 
a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessServiceImpl.java
+++ 
b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessServiceImpl.java
@@ -30,6 +30,7 @@ import static 
org.apache.dolphinscheduler.plugin.task.api.enums.DataType.VARCHAR
 import static org.apache.dolphinscheduler.plugin.task.api.enums.Direct.IN;
 import static 
org.apache.dolphinscheduler.plugin.task.api.utils.DataQualityConstants.TASK_INSTANCE_ID;
 
+import org.apache.commons.lang3.StringUtils;
 import static java.util.stream.Collectors.toSet;
 
 import org.apache.dolphinscheduler.common.Constants;
@@ -133,7 +134,6 @@ import 
org.apache.dolphinscheduler.service.task.TaskPluginManager;
 import org.apache.dolphinscheduler.spi.enums.ResourceType;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.math.NumberUtils;
 
 import java.util.ArrayList;
@@ -390,16 +390,18 @@ public class ProcessServiceImpl implements ProcessService 
{
     @Counted("dolphinscheduler_create_command_count")
     public int createCommand(Command command) {
         int result = 0;
-        if (command != null) {
-            // add command timezone
-            Schedule schedule = 
scheduleMapper.queryByProcessDefinitionCode(command.getProcessDefinitionCode());
-            Map<String, String> commandParams = 
JSONUtils.toMap(command.getCommandParam());
-            if (commandParams != null && schedule != null) {
-                commandParams.put(Constants.SCHEDULE_TIMEZONE, 
schedule.getTimezoneId());
-                command.setCommandParam(JSONUtils.toJsonString(commandParams));
-            }
-            result = commandMapper.insert(command);
+        if (command == null) {
+            return result;
+        }
+        // add command timezone
+        Schedule schedule = 
scheduleMapper.queryByProcessDefinitionCode(command.getProcessDefinitionCode());
+        if (schedule != null) {
+            Map<String, String> commandParams = 
StringUtils.isNotBlank(command.getCommandParam()) ? 
JSONUtils.toMap(command.getCommandParam()) : new HashMap<>();
+            commandParams.put(Constants.SCHEDULE_TIMEZONE, 
schedule.getTimezoneId());
+            command.setCommandParam(JSONUtils.toJsonString(commandParams));
         }
+        command.setId(null);
+        result = commandMapper.insert(command);
         return result;
     }
 
diff --git 
a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/quartz/ProcessScheduleJob.java
 
b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/quartz/ProcessScheduleJob.java
index ec5ed36f45..d726840fa1 100644
--- 
a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/quartz/ProcessScheduleJob.java
+++ 
b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/quartz/ProcessScheduleJob.java
@@ -17,6 +17,7 @@
 
 package org.apache.dolphinscheduler.service.quartz;
 
+import org.apache.commons.lang3.StringUtils;
 import org.apache.dolphinscheduler.common.Constants;
 import org.apache.dolphinscheduler.common.enums.CommandType;
 import org.apache.dolphinscheduler.common.enums.ReleaseState;
@@ -36,7 +37,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.quartz.QuartzJobBean;
-import org.springframework.util.StringUtils;
 
 import io.micrometer.core.annotation.Counted;
 import io.micrometer.core.annotation.Timed;

Reply via email to