From 6955ba5a6f9af2f92986d21003d979895a651cfa Mon Sep 17 00:00:00 2001 From: Kirs Date: Tue, 30 Nov 2021 16:09:22 +0800 Subject: [PATCH] [Upgrade][install] upgrade compatibility exception (#7030) (#7063) * upgrade compatibility exception * upgrade compatibility exception Co-authored-by: JinYong Li <42576980+JinyLeeChina@users.noreply.github.com> --- .../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 74135dd39a..2f9fb5d275 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 @@ -458,7 +458,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 { @@ -501,7 +501,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()); @@ -509,7 +511,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); @@ -615,12 +617,17 @@ public abstract class UpgradeDao { dependItem.put("projectCode", projectIdCodeMap.get(dependItem.get("projectId").asInt())); int definitionId = dependItem.get("definitionId").asInt(); Map> 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>> mapEntry = processCodeTaskNameCodeMap.entrySet().stream().findFirst(); if (mapEntry.isPresent()) { Map.Entry> 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");