From f0a34cddec5fe9fd0d1de5cd7f6788dda87c5fca Mon Sep 17 00:00:00 2001 From: fuchanghai <33984497+fuchanghai@users.noreply.github.com> Date: Thu, 20 Oct 2022 14:26:56 +0800 Subject: [PATCH] [improvement-#12416] Use CollectionUtils.isEmpty judge the collection isEmpty to avoid NPE (#12449) --- .../plugin/alert/feishu/FeiShuSender.java | 3 ++- .../webexteams/WebexTeamsAlertChannel.java | 4 ++- .../api.test/utils/JSONUtils.java | 2 +- .../configuration/TaskTypeConfiguration.java | 4 ++- .../ResourcePermissionCheckServiceImpl.java | 11 ++++---- .../impl/ProcessDefinitionServiceImpl.java | 2 +- .../impl/ProcessInstanceServiceImpl.java | 2 +- .../impl/TaskDefinitionServiceImpl.java | 25 ++++++++++--------- .../common/utils/JSONUtils.java | 4 ++- .../common/utils/NetUtils.java | 3 ++- .../common/utils/OSUtils.java | 2 +- .../common/utils/PropertyUtils.java | 4 ++- .../service/expand/CuringGlobalParams.java | 6 ++--- .../service/process/ProcessServiceImpl.java | 9 ++++--- .../task/api/parser/TimePlaceholderUtils.java | 2 +- .../task/switchtask/SwitchParameters.java | 4 ++- .../worker/message/MessageRetryRunner.java | 4 ++- 17 files changed, 54 insertions(+), 37 deletions(-) diff --git a/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-feishu/src/main/java/org/apache/dolphinscheduler/plugin/alert/feishu/FeiShuSender.java b/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-feishu/src/main/java/org/apache/dolphinscheduler/plugin/alert/feishu/FeiShuSender.java index ba245c3ae2..6523abf91a 100644 --- a/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-feishu/src/main/java/org/apache/dolphinscheduler/plugin/alert/feishu/FeiShuSender.java +++ b/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-feishu/src/main/java/org/apache/dolphinscheduler/plugin/alert/feishu/FeiShuSender.java @@ -22,6 +22,7 @@ import org.apache.dolphinscheduler.alert.api.AlertResult; import org.apache.dolphinscheduler.spi.utils.JSONUtils; import org.apache.commons.codec.binary.StringUtils; +import org.apache.commons.collections.CollectionUtils; import org.apache.http.HttpEntity; import org.apache.http.HttpStatus; import org.apache.http.client.methods.CloseableHttpResponse; @@ -108,7 +109,7 @@ public final class FeiShuSender { if (alertData.getContent() != null) { List list = JSONUtils.toList(alertData.getContent(), Map.class); - if (list.isEmpty()) { + if (CollectionUtils.isEmpty(list)) { return alertData.getTitle() + alertData.getContent(); } diff --git a/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-webexteams/src/main/java/org/apache/dolphinscheduler/plugin/alert/webexteams/WebexTeamsAlertChannel.java b/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-webexteams/src/main/java/org/apache/dolphinscheduler/plugin/alert/webexteams/WebexTeamsAlertChannel.java index 1a799ae50c..669f4ac7ba 100644 --- a/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-webexteams/src/main/java/org/apache/dolphinscheduler/plugin/alert/webexteams/WebexTeamsAlertChannel.java +++ b/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-webexteams/src/main/java/org/apache/dolphinscheduler/plugin/alert/webexteams/WebexTeamsAlertChannel.java @@ -22,6 +22,8 @@ import org.apache.dolphinscheduler.alert.api.AlertData; import org.apache.dolphinscheduler.alert.api.AlertInfo; import org.apache.dolphinscheduler.alert.api.AlertResult; +import org.apache.commons.collections.MapUtils; + import java.util.Map; public final class WebexTeamsAlertChannel implements AlertChannel { @@ -30,7 +32,7 @@ public final class WebexTeamsAlertChannel implements AlertChannel { public AlertResult process(AlertInfo alertInfo) { AlertData alertData = alertInfo.getAlertData(); Map alertParams = alertInfo.getAlertParams(); - if (alertParams == null || alertParams.size() == 0) { + if (MapUtils.isEmpty(alertParams)) { return new AlertResult("false", "WebexTeams alert params is empty"); } diff --git a/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/utils/JSONUtils.java b/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/utils/JSONUtils.java index 04c2e2bc61..009c0c6ce6 100644 --- a/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/utils/JSONUtils.java +++ b/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/utils/JSONUtils.java @@ -331,7 +331,7 @@ public class JSONUtils { public static ObjectNode parseObject(String text) { try { - if (text.isEmpty()) { + if (StringUtils.isEmpty(text)) { return parseObject(text, ObjectNode.class); } else { return (ObjectNode) objectMapper.readTree(text); diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/configuration/TaskTypeConfiguration.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/configuration/TaskTypeConfiguration.java index 649e32c088..5bb27e0a99 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/configuration/TaskTypeConfiguration.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/configuration/TaskTypeConfiguration.java @@ -21,6 +21,8 @@ import org.apache.dolphinscheduler.api.dto.FavTaskDto; import org.apache.dolphinscheduler.common.Constants; import org.apache.dolphinscheduler.common.config.YamlPropertySourceFactory; +import org.apache.commons.collections.CollectionUtils; + import java.util.ArrayList; import java.util.List; @@ -55,7 +57,7 @@ public class TaskTypeConfiguration { private static final List defaultTaskTypes = new ArrayList<>(); public List getDefaultTaskTypes() { - if (!defaultTaskTypes.isEmpty()) { + if (CollectionUtils.isNotEmpty(defaultTaskTypes)) { return defaultTaskTypes; } printDefaultTypes(); diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/permission/ResourcePermissionCheckServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/permission/ResourcePermissionCheckServiceImpl.java index 49c35242b2..f2dc5162a5 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/permission/ResourcePermissionCheckServiceImpl.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/permission/ResourcePermissionCheckServiceImpl.java @@ -114,7 +114,7 @@ public class ResourcePermissionCheckServiceImpl originResSet.removeAll(ownResSets); if (CollectionUtils.isNotEmpty(originResSet)) logger.warn("User does not have resource permission on associated resources, userId:{}", userId); - return originResSet.isEmpty(); + return CollectionUtils.isEmpty(originResSet); } return true; } @@ -180,7 +180,8 @@ public class ResourcePermissionCheckServiceImpl return Collections.emptySet(); } List queues = queueMapper.selectList(null); - return queues.isEmpty() ? Collections.emptySet() : queues.stream().map(Queue::getId).collect(toSet()); + return CollectionUtils.isEmpty(queues) ? Collections.emptySet() + : queues.stream().map(Queue::getId).collect(toSet()); } } @@ -266,7 +267,7 @@ public class ResourcePermissionCheckServiceImpl @Override public Set listAuthorizedResource(int userId, Logger logger) { List udfFuncList = udfFuncMapper.listAuthorizedUdfByUserId(userId); - if (udfFuncList.isEmpty()) { + if (CollectionUtils.isEmpty(udfFuncList)) { return Collections.emptySet(); } return udfFuncList.stream().map(UdfFunc::getId).collect(toSet()); @@ -295,7 +296,7 @@ public class ResourcePermissionCheckServiceImpl @Override public Set listAuthorizedResource(int userId, Logger logger) { List taskGroupList = taskGroupMapper.listAuthorizedResource(userId); - if (taskGroupList.isEmpty()) { + if (CollectionUtils.isEmpty(taskGroupList)) { return Collections.emptySet(); } return taskGroupList.stream().map(TaskGroup::getId).collect(Collectors.toSet()); @@ -354,7 +355,7 @@ public class ResourcePermissionCheckServiceImpl @Override public Set listAuthorizedResource(int userId, Logger logger) { List environments = environmentMapper.queryAllEnvironmentList(); - if (environments.isEmpty()) { + if (CollectionUtils.isEmpty(environments)) { return Collections.emptySet(); } return environments.stream().map(Environment::getId).collect(Collectors.toSet()); diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java index 17979139d5..713dbf7e86 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java @@ -968,7 +968,7 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro Set diffCode = definitionCodes.stream().filter(code -> !queryCodes.contains(code)).collect(Collectors.toSet()); - if (!diffCode.isEmpty()) { + if (CollectionUtils.isNotEmpty(diffCode)) { logger.error("Process definition does not exist, processCodes:{}.", diffCode.stream().map(String::valueOf).collect(Collectors.joining(Constants.COMMA))); throw new ServiceException(Status.BATCH_DELETE_PROCESS_DEFINE_BY_CODES_ERROR, diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessInstanceServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessInstanceServiceImpl.java index b969ea6dcc..c99c07a202 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessInstanceServiceImpl.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessInstanceServiceImpl.java @@ -889,7 +889,7 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce ganttDto.setTaskNames(nodeList); List taskList = new ArrayList<>(); - if (!nodeList.isEmpty()) { + if (CollectionUtils.isNotEmpty(nodeList)) { List taskCodes = nodeList.stream().map(Long::parseLong).collect(Collectors.toList()); List taskInstances = taskInstanceMapper.queryByProcessInstanceIdsAndTaskCodes( Collections.singletonList(processInstanceId), taskCodes); diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java index f60d85e3e8..d7e3a6364f 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java @@ -66,6 +66,7 @@ import org.apache.dolphinscheduler.service.process.ProcessService; import org.apache.dolphinscheduler.service.task.TaskPluginManager; import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections.MapUtils; import org.apache.commons.lang3.StringUtils; import java.lang.reflect.InvocationTargetException; @@ -150,7 +151,7 @@ public class TaskDefinitionServiceImpl extends BaseServiceImpl implements TaskDe } List taskDefinitionLogs = JSONUtils.toList(taskDefinitionJson, TaskDefinitionLog.class); - if (taskDefinitionLogs.isEmpty()) { + if (CollectionUtils.isEmpty(taskDefinitionLogs)) { logger.warn("Parameter taskDefinitionJson is invalid."); putMsg(result, Status.DATA_IS_NOT_VALID, taskDefinitionJson); return result; @@ -336,7 +337,7 @@ public class TaskDefinitionServiceImpl extends BaseServiceImpl implements TaskDe // upstreamTaskCodes - queryUpStreamTaskCodes Set diffCode = upstreamTaskCodes.stream().filter(code -> !queryUpStreamTaskCodes.contains(code)) .collect(Collectors.toSet()); - if (!diffCode.isEmpty()) { + if (CollectionUtils.isNotEmpty(diffCode)) { String taskCodes = StringUtils.join(diffCode, Constants.COMMA); logger.error("Some task definitions with parameter upstreamCodes do not exist, taskDefinitionCodes:{}.", taskCodes); @@ -438,7 +439,7 @@ public class TaskDefinitionServiceImpl extends BaseServiceImpl implements TaskDe // Whether task have downstream tasks List processTaskRelationList = processTaskRelationMapper.queryDownstreamByTaskCode(taskDefinition.getCode()); - if (!processTaskRelationList.isEmpty()) { + if (CollectionUtils.isNotEmpty(processTaskRelationList)) { Set postTaskCodes = processTaskRelationList .stream() .map(ProcessTaskRelation::getPostTaskCode) @@ -474,7 +475,7 @@ public class TaskDefinitionServiceImpl extends BaseServiceImpl implements TaskDe // Delete task upstream tasks if exists List taskRelationList = processTaskRelationMapper.queryUpstreamByCode(taskDefinition.getProjectCode(), taskCode); - if (!taskRelationList.isEmpty()) { + if (CollectionUtils.isNotEmpty(taskRelationList)) { logger.debug( "Task definition has upstream tasks, start handle them after delete task, taskDefinitionCode:{}.", taskCode); @@ -540,7 +541,7 @@ public class TaskDefinitionServiceImpl extends BaseServiceImpl implements TaskDe } List taskRelationList = processTaskRelationMapper.queryUpstreamByCode(projectCode, taskCode); - if (!taskRelationList.isEmpty()) { + if (CollectionUtils.isNotEmpty(taskRelationList)) { logger.info( "Task definition has upstream tasks, start handle them after update task, taskDefinitionCode:{}.", taskCode); @@ -614,7 +615,7 @@ public class TaskDefinitionServiceImpl extends BaseServiceImpl implements TaskDe List taskRelationList = processTaskRelationMapper.queryUpstreamByCode(taskDefinitionUpdate.getProjectCode(), taskCode); - if (!taskRelationList.isEmpty()) { + if (CollectionUtils.isNotEmpty(taskRelationList)) { logger.info( "Task definition has upstream tasks, start handle them after update task, taskDefinitionCode:{}.", taskCode); @@ -794,13 +795,13 @@ public class TaskDefinitionServiceImpl extends BaseServiceImpl implements TaskDe } } Map queryUpStreamTaskCodeMap; - if (!upstreamTaskCodes.isEmpty()) { + if (CollectionUtils.isNotEmpty(upstreamTaskCodes)) { List upstreamTaskDefinitionList = taskDefinitionMapper.queryByCodeList(upstreamTaskCodes); queryUpStreamTaskCodeMap = upstreamTaskDefinitionList.stream() .collect(Collectors.toMap(TaskDefinition::getCode, taskDefinition -> taskDefinition)); // upstreamTaskCodes - queryUpStreamTaskCodeMap.keySet upstreamTaskCodes.removeAll(queryUpStreamTaskCodeMap.keySet()); - if (!upstreamTaskCodes.isEmpty()) { + if (CollectionUtils.isNotEmpty(upstreamTaskCodes)) { String notExistTaskCodes = StringUtils.join(upstreamTaskCodes, Constants.COMMA); logger.error("Some task definitions in parameter upstreamTaskCodes do not exist, notExistTaskCodes:{}.", notExistTaskCodes); @@ -810,7 +811,7 @@ public class TaskDefinitionServiceImpl extends BaseServiceImpl implements TaskDe } else { queryUpStreamTaskCodeMap = new HashMap<>(); } - if (!upstreamTaskRelations.isEmpty()) { + if (CollectionUtils.isNotEmpty(upstreamTaskCodes)) { ProcessTaskRelation taskRelation = upstreamTaskRelations.get(0); List processTaskRelations = processTaskRelationMapper.queryByProcessCode(projectCode, taskRelation.getProcessDefinitionCode()); @@ -834,7 +835,7 @@ public class TaskDefinitionServiceImpl extends BaseServiceImpl implements TaskDe taskRelation.setPreTaskVersion(queryUpStreamTask.getValue().getVersion()); processTaskRelationList.add(taskRelation); } - if (queryUpStreamTaskCodeMap.isEmpty() && !processTaskRelationList.isEmpty()) { + if (MapUtils.isEmpty(queryUpStreamTaskCodeMap) && CollectionUtils.isNotEmpty(processTaskRelationList)) { processTaskRelationList.add(processTaskRelationList.get(0)); } updateDag(loginUser, taskRelation.getProcessDefinitionCode(), processTaskRelations, @@ -888,7 +889,7 @@ public class TaskDefinitionServiceImpl extends BaseServiceImpl implements TaskDe if (switchVersion > 0) { List taskRelationList = processTaskRelationMapper.queryUpstreamByCode(projectCode, taskCode); - if (!taskRelationList.isEmpty()) { + if (CollectionUtils.isNotEmpty(taskRelationList)) { logger.info( "Task definition has upstream tasks, start handle them after switch task, taskDefinitionCode:{}.", taskCode); @@ -1022,7 +1023,7 @@ public class TaskDefinitionServiceImpl extends BaseServiceImpl implements TaskDe taskDefinitionMapper.queryDefineListPaging(page, projectCode, searchWorkflowName, searchTaskName, taskType, taskExecuteType); List records = taskMainInfoIPage.getRecords(); - if (!records.isEmpty()) { + if (CollectionUtils.isNotEmpty(records)) { Map taskMainInfoMap = new HashMap<>(); for (TaskMainInfo info : records) { taskMainInfoMap.compute(info.getTaskCode(), (k, v) -> { diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/JSONUtils.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/JSONUtils.java index 3fd81942da..a4a73b2ccf 100644 --- a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/JSONUtils.java +++ b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/JSONUtils.java @@ -25,6 +25,8 @@ import static java.nio.charset.StandardCharsets.UTF_8; import org.apache.dolphinscheduler.common.Constants; +import org.apache.commons.lang3.StringUtils; + import java.io.IOException; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -339,7 +341,7 @@ public class JSONUtils { public static ObjectNode parseObject(String text) { try { - if (text.isEmpty()) { + if (StringUtils.isEmpty(text)) { return parseObject(text, ObjectNode.class); } else { return (ObjectNode) objectMapper.readTree(text); diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/NetUtils.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/NetUtils.java index 39796d5d40..8018bfe5dc 100644 --- a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/NetUtils.java +++ b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/NetUtils.java @@ -21,6 +21,7 @@ import static java.util.Collections.emptyList; import org.apache.dolphinscheduler.common.Constants; +import org.apache.commons.collections.CollectionUtils; import org.apache.http.conn.util.InetAddressUtils; import java.io.IOException; @@ -266,7 +267,7 @@ public class NetUtils { } private static NetworkInterface findAddress(List validNetworkInterfaces) { - if (validNetworkInterfaces.isEmpty()) { + if (CollectionUtils.isEmpty(validNetworkInterfaces)) { return null; } String networkPriority = PropertyUtils.getString(Constants.DOLPHIN_SCHEDULER_NETWORK_PRIORITY_STRATEGY, diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/OSUtils.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/OSUtils.java index 8faba94638..a209d6de94 100644 --- a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/OSUtils.java +++ b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/OSUtils.java @@ -241,7 +241,7 @@ public class OSUtils { int startPos = 0; int endPos = lines.length - 2; for (int i = 0; i < lines.length; i++) { - if (lines[i].isEmpty()) { + if (StringUtils.isEmpty(lines[i])) { continue; } diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/PropertyUtils.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/PropertyUtils.java index 5c6ff3b0ed..000bde13dd 100644 --- a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/PropertyUtils.java +++ b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/PropertyUtils.java @@ -22,6 +22,8 @@ import static org.apache.dolphinscheduler.common.Constants.COMMON_PROPERTIES_PAT import org.apache.dolphinscheduler.common.Constants; import org.apache.dolphinscheduler.common.enums.ResUploadType; +import org.apache.commons.collections.CollectionUtils; + import java.io.IOException; import java.io.InputStream; import java.util.HashMap; @@ -280,7 +282,7 @@ public class PropertyUtils { return null; } Set keys = properties.keySet(); - if (keys.isEmpty()) { + if (CollectionUtils.isEmpty(keys)) { return null; } Map propertiesMap = new HashMap<>(); diff --git a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/expand/CuringGlobalParams.java b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/expand/CuringGlobalParams.java index 13c16cec0f..cc5ca4ba4a 100644 --- a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/expand/CuringGlobalParams.java +++ b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/expand/CuringGlobalParams.java @@ -147,7 +147,7 @@ public class CuringGlobalParams implements CuringParamsService { parameters.setVarPool(taskInstance.getVarPool()); Map varParams = parameters.getVarPoolMap(); - if (globalParams.isEmpty() && localParams.isEmpty() && varParams.isEmpty()) { + if (MapUtils.isEmpty(globalParams) && MapUtils.isEmpty(localParams) && MapUtils.isEmpty(varParams)) { return null; } // if it is a complement, @@ -166,10 +166,10 @@ public class CuringGlobalParams implements CuringParamsService { } params.put(PARAMETER_TASK_INSTANCE_ID, Integer.toString(taskInstance.getId())); - if (varParams.size() != 0) { + if (MapUtils.isNotEmpty(varParams)) { globalParams.putAll(varParams); } - if (localParams.size() != 0) { + if (MapUtils.isNotEmpty(localParams)) { globalParams.putAll(localParams); } 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 c558c64ae0..8277dc6d71 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 @@ -137,6 +137,7 @@ import org.apache.dolphinscheduler.service.utils.DagHelper; import org.apache.dolphinscheduler.spi.enums.ResourceType; import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections.MapUtils; import org.apache.commons.lang3.StringUtils; import java.util.ArrayList; @@ -746,7 +747,7 @@ public class ProcessServiceImpl implements ProcessService { queryReleaseSchedulerListByProcessDefinitionCode(command.getProcessDefinitionCode()); List complementDateList = CronUtils.getSelfFireDateList(start, end, schedules); - if (complementDateList.size() > 0) { + if (CollectionUtils.isNotEmpty(complementDateList)) { scheduleTime = complementDateList.get(0); } else { logger.error("set scheduler time error: complement date list is empty, command: {}", @@ -841,7 +842,7 @@ public class ProcessServiceImpl implements ProcessService { // set start param into global params Map globalMap = processDefinition.getGlobalParamMap(); List globalParamList = processDefinition.getGlobalParamList(); - if (startParamMap.size() > 0 && globalMap != null) { + if (MapUtils.isNotEmpty(startParamMap) && globalMap != null) { // start param to overwrite global param for (Map.Entry param : globalMap.entrySet()) { String val = startParamMap.get(param.getKey()); @@ -1159,7 +1160,7 @@ public class ProcessServiceImpl implements ProcessService { complementDate = CronUtils.getSelfScheduleDateList(cmdParam); } - if (complementDate.size() > 0 && Flag.NO == processInstance.getIsSubProcess()) { + if (CollectionUtils.isNotEmpty(complementDate) && Flag.NO == processInstance.getIsSubProcess()) { processInstance.setScheduleTime(complementDate.get(0)); } @@ -1473,7 +1474,7 @@ public class ProcessServiceImpl implements ProcessService { } processMapStr = JSONUtils.toJsonString(cmdParam); } - if (fatherParams.size() != 0) { + if (MapUtils.isNotEmpty(fatherParams)) { cmdParam.put(CMD_PARAM_FATHER_PARAMS, JSONUtils.toJsonString(fatherParams)); processMapStr = JSONUtils.toJsonString(cmdParam); } diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/parser/TimePlaceholderUtils.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/parser/TimePlaceholderUtils.java index 518b5e5229..76da14c4bb 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/parser/TimePlaceholderUtils.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/parser/TimePlaceholderUtils.java @@ -266,7 +266,7 @@ public class TimePlaceholderUtils { if (Character.isDigit(expression.charAt(i))) { num = num + expression.charAt(i); } else { - if (!num.isEmpty()) { + if (!StringUtils.isEmpty(num)) { result.add(num); } result.add(expression.charAt(i) + ""); diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-switch/src/main/java/org/apache/dolphinscheduler/plugin/task/switchtask/SwitchParameters.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-switch/src/main/java/org/apache/dolphinscheduler/plugin/task/switchtask/SwitchParameters.java index 37287aec03..2e7fa5125b 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-switch/src/main/java/org/apache/dolphinscheduler/plugin/task/switchtask/SwitchParameters.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-switch/src/main/java/org/apache/dolphinscheduler/plugin/task/switchtask/SwitchParameters.java @@ -22,6 +22,8 @@ import org.apache.dolphinscheduler.plugin.task.api.model.ResourceInfo; import org.apache.dolphinscheduler.plugin.task.api.parameters.AbstractParameters; import org.apache.dolphinscheduler.spi.utils.StringUtils; +import org.apache.commons.collections.CollectionUtils; + import java.util.List; public class SwitchParameters extends AbstractParameters { @@ -86,7 +88,7 @@ public class SwitchParameters extends AbstractParameters { } // validate conditions must have next node List conditions = this.switchResult.getDependTaskList(); - if (conditions != null && conditions.size() != 0) { + if (CollectionUtils.isNotEmpty(conditions)) { if (conditions.stream() .anyMatch(e -> (StringUtils.isNotEmpty(e.getCondition()) && e.getNextNode() == null))) { return false; diff --git a/dolphinscheduler-worker/src/main/java/org/apache/dolphinscheduler/server/worker/message/MessageRetryRunner.java b/dolphinscheduler-worker/src/main/java/org/apache/dolphinscheduler/server/worker/message/MessageRetryRunner.java index eb4cbf1210..72308dab43 100644 --- a/dolphinscheduler-worker/src/main/java/org/apache/dolphinscheduler/server/worker/message/MessageRetryRunner.java +++ b/dolphinscheduler-worker/src/main/java/org/apache/dolphinscheduler/server/worker/message/MessageRetryRunner.java @@ -24,6 +24,8 @@ import org.apache.dolphinscheduler.remote.command.BaseCommand; import org.apache.dolphinscheduler.remote.command.CommandType; import org.apache.dolphinscheduler.service.utils.LoggerUtils; +import org.apache.commons.collections.MapUtils; + import java.time.Duration; import java.util.HashMap; import java.util.Map; @@ -101,7 +103,7 @@ public class MessageRetryRunner extends BaseDaemonThread { public void run() { while (!ServerLifeCycleManager.isStopped()) { try { - if (needToRetryMessages.isEmpty()) { + if (MapUtils.isEmpty(needToRetryMessages)) { Thread.sleep(MESSAGE_RETRY_WINDOW); }