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

leonbao 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 c5bde33  [Upgrade][install] upgrade compatibility exception (#7030)
c5bde33 is described below

commit c5bde33ac01b143e0c3394e24170d6034c942dd0
Author: JinYong Li <[email protected]>
AuthorDate: Mon Nov 29 15:07:47 2021 +0800

    [Upgrade][install] upgrade compatibility exception (#7030)
    
    * upgrade compatibility exception
    
    * upgrade compatibility exception
---
 .../apache/dolphinscheduler/dao/upgrade/UpgradeDao.java   | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git 
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/upgrade/UpgradeDao.java
 
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/upgrade/UpgradeDao.java
index bbbd1bd..d2ce104 100644
--- 
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/upgrade/UpgradeDao.java
+++ 
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/upgrade/UpgradeDao.java
@@ -474,7 +474,7 @@ public abstract class UpgradeDao {
             ObjectNode jsonObject = JSONUtils.parseObject(entry.getValue());
             ProcessDefinition processDefinition = 
processDefinitionMap.get(entry.getKey());
             if (processDefinition != null) {
-                
processDefinition.setTenantId(jsonObject.get("tenantId").asInt());
+                processDefinition.setTenantId(jsonObject.get("tenantId") == 
null ? -1 : jsonObject.get("tenantId").asInt());
                 
processDefinition.setTimeout(jsonObject.get("timeout").asInt());
                 
processDefinition.setGlobalParams(jsonObject.get("globalParams").toString());
             } else {
@@ -517,7 +517,9 @@ public abstract class UpgradeDao {
                     taskDefinitionLog.setTimeoutFlag(timeout.getEnable() ? 
TimeoutFlag.OPEN : TimeoutFlag.CLOSE);
                     
taskDefinitionLog.setTimeoutNotifyStrategy(timeout.getStrategy());
                 }
-                
taskDefinitionLog.setDescription(task.get("description").asText());
+                String desc = task.get("description") != null ? 
task.get("description").asText() :
+                    task.get("desc") != null ? task.get("desc").asText() : "";
+                taskDefinitionLog.setDescription(desc);
                 
taskDefinitionLog.setFlag(Constants.FLOWNODE_RUN_FLAG_NORMAL.equals(task.get("runFlag").asText())
 ? Flag.YES : Flag.NO);
                 taskDefinitionLog.setTaskType(taskType);
                 
taskDefinitionLog.setFailRetryInterval(TaskType.SUB_PROCESS.getDesc().equals(taskType)
 ? 1 : task.get("retryInterval").asInt());
@@ -525,7 +527,7 @@ public abstract class UpgradeDao {
                 
taskDefinitionLog.setTaskPriority(JSONUtils.parseObject(JSONUtils.toJsonString(task.get("taskInstancePriority")),
 Priority.class));
                 String name = task.get("name").asText();
                 taskDefinitionLog.setName(name);
-                
taskDefinitionLog.setWorkerGroup(task.get("workerGroup").asText());
+                taskDefinitionLog.setWorkerGroup(task.get("workerGroup") == 
null ? "default" : task.get("workerGroup").asText());
                 long taskCode = CodeGenerateUtils.getInstance().genCode();
                 taskDefinitionLog.setCode(taskCode);
                 taskDefinitionLog.setVersion(Constants.VERSION_FIRST);
@@ -631,12 +633,17 @@ public abstract class UpgradeDao {
                         dependItem.put("projectCode", 
projectIdCodeMap.get(dependItem.get("projectId").asInt()));
                         int definitionId = 
dependItem.get("definitionId").asInt();
                         Map<Long, Map<String, Long>> 
processCodeTaskNameCodeMap = processTaskMap.get(definitionId);
+                        if (processCodeTaskNameCodeMap == null) {
+                            logger.warn("We can't find processDefinition [{}], 
please check it is not exist, remove this dependence", definitionId);
+                            dependItemList.remove(j);
+                            continue;
+                        }
                         Optional<Map.Entry<Long, Map<String, Long>>> mapEntry 
= processCodeTaskNameCodeMap.entrySet().stream().findFirst();
                         if (mapEntry.isPresent()) {
                             Map.Entry<Long, Map<String, Long>> 
processCodeTaskNameCodeEntry = mapEntry.get();
                             dependItem.put("definitionCode", 
processCodeTaskNameCodeEntry.getKey());
                             String depTasks = 
dependItem.get("depTasks").asText();
-                            long taskCode = "ALL".equals(depTasks) ? 0L : 
processCodeTaskNameCodeEntry.getValue().get(depTasks);
+                            long taskCode = "ALL".equals(depTasks) || 
processCodeTaskNameCodeEntry.getValue() == null ? 0L : 
processCodeTaskNameCodeEntry.getValue().get(depTasks);
                             dependItem.put("depTaskCode", taskCode);
                         }
                         dependItem.remove("projectId");

Reply via email to