diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/DataSourceService.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/DataSourceService.java index 1324aaa94487c464762c53352095d646f24541c5..4ede0ac7f02f148179431f5ebe0b8b41ecf3e2cb 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/DataSourceService.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/DataSourceService.java @@ -517,14 +517,12 @@ public class DataSourceService extends BaseService{ parameterMap.put(Constants.PRINCIPAL,principal); } if (other != null && !"".equals(other)) { - Map map = JSONObject.parseObject(other, new TypeReference>() { + LinkedHashMap map = JSONObject.parseObject(other, new TypeReference>() { }); if (map.size() > 0) { - Set keys = map.keySet(); StringBuilder otherSb = new StringBuilder(); - for (String key : keys) { - otherSb.append(String.format("%s=%s%s", key, map.get(key), separator)); - + for (Map.Entry entry: map.entrySet()) { + otherSb.append(String.format("%s=%s%s", entry.getKey(), entry.getValue(), separator)); } otherSb.deleteCharAt(otherSb.length() - 1); parameterMap.put(Constants.OTHER, otherSb); diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ResourcesService.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ResourcesService.java index e554920495214c0c48cc9170c5306b984b1425a5..a3e352a10c24fb099fea87e3942e34085dce9bbd 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ResourcesService.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ResourcesService.java @@ -144,11 +144,11 @@ public class ResourcesService extends BaseService { resourcesMapper.insert(resource); putMsg(result, Status.SUCCESS); - Map dataMap = new BeanMap(resource); + Map dataMap = new BeanMap(resource); Map resultMap = new HashMap(); - for (Object key : dataMap.keySet()) { - if (!"class".equalsIgnoreCase(key.toString())) { - resultMap.put(key.toString(), dataMap.get(key)); + for (Map.Entry entry: dataMap.entrySet()) { + if (!"class".equalsIgnoreCase(entry.getKey().toString())) { + resultMap.put(entry.getKey().toString(), entry.getValue()); } } result.setData(resultMap); @@ -238,11 +238,11 @@ public class ResourcesService extends BaseService { resourcesMapper.updateById(resource); putMsg(result, Status.SUCCESS); - Map dataMap = new BeanMap(resource); + Map dataMap = new BeanMap(resource); Map resultMap = new HashMap<>(5); - for (Object key : dataMap.keySet()) { - if (!Constants.CLASS.equalsIgnoreCase(key.toString())) { - resultMap.put(key.toString(), dataMap.get(key)); + for (Map.Entry entry: dataMap.entrySet()) { + if (!Constants.CLASS.equalsIgnoreCase(entry.getKey().toString())) { + resultMap.put(entry.getKey().toString(), entry.getValue()); } } result.setData(resultMap); @@ -595,11 +595,11 @@ public class ResourcesService extends BaseService { resourcesMapper.insert(resource); putMsg(result, Status.SUCCESS); - Map dataMap = new BeanMap(resource); + Map dataMap = new BeanMap(resource); Map resultMap = new HashMap<>(5); - for (Object key : dataMap.keySet()) { - if (!Constants.CLASS.equalsIgnoreCase(key.toString())) { - resultMap.put(key.toString(), dataMap.get(key)); + for (Map.Entry entry: dataMap.entrySet()) { + if (!Constants.CLASS.equalsIgnoreCase(entry.getKey().toString())) { + resultMap.put(entry.getKey().toString(), entry.getValue()); } } result.setData(resultMap); @@ -894,4 +894,4 @@ public class ResourcesService extends BaseService { } } -} \ No newline at end of file +} diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/CollectionUtils.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/CollectionUtils.java index 470242359e5e810a33d0a01271d8ae092d83d9bf..d2a2d3a5f4d18b8cf9dcb00c9b3aa1ce43cec7c4 100644 --- a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/CollectionUtils.java +++ b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/CollectionUtils.java @@ -276,13 +276,11 @@ public class CollectionUtils { for (T instance : originList) { Map dataMap = new BeanMap(instance); instanceMap = new LinkedHashMap<>(16,0.75f,true); - for (Object key : dataMap.keySet()) { - - if (exclusionSet.contains(key.toString())) { + for (Map.Entry entry: dataMap.entrySet()) { + if (exclusionSet.contains(entry.getKey())) { continue; } - instanceMap.put(key.toString(), dataMap.get(key)); - + instanceMap.put(entry.getKey(), entry.getValue()); } instanceList.add(instanceMap); } diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/zk/AbstractZKClient.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/zk/AbstractZKClient.java index b363d691869f3330bea29048050b70aefa23c5c4..383c156e5166381030ad5edc96a2dfb496f26ee1 100644 --- a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/zk/AbstractZKClient.java +++ b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/zk/AbstractZKClient.java @@ -55,7 +55,7 @@ public abstract class AbstractZKClient { * load configuration file */ protected static Configuration conf; - + protected CuratorFramework zkClient = null; /** @@ -92,13 +92,13 @@ public abstract class AbstractZKClient { zkClient.start(); initStateLister(); - + }catch(Exception e){ logger.error("create zookeeper connect failed : " + e.getMessage(),e); System.exit(-1); } } - + /** * * register status monitoring events for zookeeper clients @@ -109,7 +109,7 @@ public abstract class AbstractZKClient { } // add ConnectionStateListener monitoring zookeeper connection state ConnectionStateListener csLister = new ConnectionStateListener() { - + @Override public void stateChanged(CuratorFramework client, ConnectionState newState) { logger.info("state changed , current state : " + newState.name()); @@ -122,7 +122,7 @@ public abstract class AbstractZKClient { } } }; - + zkClient.getConnectionStateListenable().addListener(csLister); } @@ -346,9 +346,9 @@ public abstract class AbstractZKClient { List masterServers = new ArrayList<>(); int i = 0; - for(String path : masterMap.keySet()){ - MasterServer masterServer = ResInfo.parseHeartbeatForZKInfo(masterMap.get(path)); - masterServer.setZkDirectory( parentPath + "/"+ path); + for (Map.Entry entry : masterMap.entrySet()) { + MasterServer masterServer = ResInfo.parseHeartbeatForZKInfo(entry.getValue()); + masterServer.setZkDirectory( parentPath + "/"+ entry.getKey()); masterServer.setId(i); i ++; masterServers.add(masterServer); diff --git a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/ProcessDao.java b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/ProcessDao.java index 531caef6caf6ec9c566c987ef5fcad504d0e118a..d9fc0858cd2454f93ca40565899eb099262840e7 100644 --- a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/ProcessDao.java +++ b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/ProcessDao.java @@ -580,9 +580,9 @@ public class ProcessDao extends AbstractBaseDao { //reset command parameter if(processInstance.getCommandParam() != null){ Map processCmdParam = JSONUtils.toMap(processInstance.getCommandParam()); - for(String key : processCmdParam.keySet()){ - if(!cmdParam.containsKey(key)){ - cmdParam.put(key,processCmdParam.get(key)); + for(Map.Entry entry: processCmdParam.entrySet()) { + if(!cmdParam.containsKey(entry.getKey())){ + cmdParam.put(entry.getKey(), entry.getValue()); } } } diff --git a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/MasterExecThread.java b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/MasterExecThread.java index fb9b7bd1221cf78d64db4c5704de3c64bdd42201..798c36a6eb5a29ef9817adfeafd08289def6d870 100644 --- a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/MasterExecThread.java +++ b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/MasterExecThread.java @@ -550,11 +550,9 @@ public class MasterExecThread implements Runnable { */ private List getCompleteTaskByState(ExecutionStatus state){ List resultList = new ArrayList<>(); - Set taskList = completeTaskList.keySet(); - for(String taskName : taskList){ - TaskInstance taskInstance = completeTaskList.get(taskName); - if(taskInstance.getState() == state){ - resultList.add(taskInstance); + for (Map.Entry entry: completeTaskList.entrySet()) { + if(entry.getValue().getState() == state){ + resultList.add(entry.getValue()); } } return resultList; @@ -766,10 +764,8 @@ public class MasterExecThread implements Runnable { * @return */ private Boolean hasRetryTaskInStandBy(){ - Set taskNameSet = this.readyToSubmitTaskList.keySet(); - for(String taskName : taskNameSet){ - TaskInstance task = this.readyToSubmitTaskList.get(taskName); - if(task.getState().typeIsFailure()){ + for (Map.Entry entry: readyToSubmitTaskList.entrySet()) { + if(entry.getValue().getState().typeIsFailure()){ return true; } } @@ -791,16 +787,15 @@ public class MasterExecThread implements Runnable { processDao.findProcessDefineById(processInstance.getProcessDefinitionId())); sendTimeWarning = true; } - Set keys = activeTaskNode.keySet(); - for (MasterBaseTaskExecThread taskExecThread : keys) { - Future future = activeTaskNode.get(taskExecThread); - TaskInstance task = taskExecThread.getTaskInstance(); + for(Map.Entry> entry: activeTaskNode.entrySet()) { + Future future = entry.getValue(); + TaskInstance task = entry.getKey().getTaskInstance(); if(!future.isDone()){ continue; } // node monitor thread complete - activeTaskNode.remove(taskExecThread); + activeTaskNode.remove(entry.getKey()); if(task == null){ this.taskFailedSubmit = true; continue; @@ -842,11 +837,11 @@ public class MasterExecThread implements Runnable { // failure priority is higher than pause // if a task fails, other suspended tasks need to be reset kill if(errorTaskList.size() > 0){ - for(String taskName : completeTaskList.keySet()){ - TaskInstance completeTask = completeTaskList.get(taskName); + for(Map.Entry entry: completeTaskList.entrySet()) { + TaskInstance completeTask = entry.getValue(); if(completeTask.getState()== ExecutionStatus.PAUSE){ completeTask.setState(ExecutionStatus.KILL); - completeTaskList.put(taskName, completeTask); + completeTaskList.put(entry.getKey(), completeTask); processDao.updateTaskInstance(completeTask); } } @@ -938,9 +933,8 @@ public class MasterExecThread implements Runnable { * handling the list of tasks to be submitted */ private void submitStandByTask(){ - Set readySubmitTaskNames = readyToSubmitTaskList.keySet(); - for(String readySubmitTaskName : readySubmitTaskNames){ - TaskInstance task = readyToSubmitTaskList.get(readySubmitTaskName); + for(Map.Entry entry: readyToSubmitTaskList.entrySet()) { + TaskInstance task = entry.getValue(); DependResult dependResult = getDependResultForTask(task); if(DependResult.SUCCESS == dependResult){ if(retryTaskIntervalOverTime(task)){ @@ -949,7 +943,7 @@ public class MasterExecThread implements Runnable { } }else if(DependResult.FAILED == dependResult){ // if the dependency fails, the current node is not submitted and the state changes to failure. - dependFailedTask.put(readySubmitTaskName, task); + dependFailedTask.put(entry.getKey(), task); removeTaskFromStandbyList(task); logger.info("task {},id:{} depend result : {}",task.getName(), task.getId(), dependResult); } diff --git a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/dependent/DependentTask.java b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/dependent/DependentTask.java index 6fbef4acad0dcb35789f30cd3db338316e246cb2..da508288492b47ad344f9d610a81f8704807b9fd 100644 --- a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/dependent/DependentTask.java +++ b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/dependent/DependentTask.java @@ -141,14 +141,12 @@ public class DependentTask extends AbstractTask { private boolean allDependentTaskFinish(){ boolean finish = true; for(DependentExecute dependentExecute : dependentTaskList){ - Map resultMap = dependentExecute.getDependResultMap(); - Set keySet = resultMap.keySet(); - for(String key : keySet){ - if(!dependResultMap.containsKey(key)){ - dependResultMap.put(key, resultMap.get(key)); + for(Map.Entry entry: dependentExecute.getDependResultMap().entrySet()) { + if(!dependResultMap.containsKey(entry.getKey())){ + dependResultMap.put(entry.getKey(), entry.getValue()); //save depend result to log logger.info("dependent item complete {} {},{}", - DEPENDENT_SPLIT, key, resultMap.get(key).toString()); + DEPENDENT_SPLIT, entry.getKey(), entry.getValue().toString()); } } if(!dependentExecute.finish(dependentDate)){ diff --git a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/sql/SqlTask.java b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/sql/SqlTask.java index 604fd543d80136459dd1d7e4b49e82c1f15fbbc1..ab7f4bb29f41073250930b2f8d576743b488cc9e 100644 --- a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/sql/SqlTask.java +++ b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/sql/SqlTask.java @@ -355,10 +355,10 @@ public class SqlTask extends AbstractTask { stmt.setQueryTimeout(taskProps.getTaskTimeout()); } Map params = sqlBinds.getParamsMap(); - if(params != null){ - for(Integer key : params.keySet()){ - Property prop = params.get(key); - ParameterUtils.setInParameter(key,stmt,prop.getType(),prop.getValue()); + if(params != null) { + for (Map.Entry entry : params.entrySet()) { + Property prop = entry.getValue(); + ParameterUtils.setInParameter(entry.getKey(), stmt, prop.getType(), prop.getValue()); } } logger.info("prepare statement replace sql : {} ",stmt.toString());