This is an automated email from the ASF dual-hosted git repository.
jinyleechina 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 605767e [Fix-7654]Dependent node onChangeProjectCode error (#7672)
605767e is described below
commit 605767e47b29f7dc6f2c1c69e13848a8268fcd1c
Author: BaoLiang <[email protected]>
AuthorDate: Tue Dec 28 18:09:42 2021 +0800
[Fix-7654]Dependent node onChangeProjectCode error (#7672)
* fix #7654 Dependent node onChangeProjectCode error
* fix #7654 Dependent node onChangeProjectCode error
* fix #7654 Dependent node onChangeProjectCode error
* update ut
---
.../api/service/impl/ProcessDefinitionServiceImpl.java | 8 +++++++-
.../api/service/ProcessDefinitionServiceTest.java | 5 +++++
.../main/java/org/apache/dolphinscheduler/common/Constants.java | 5 +++++
3 files changed, 17 insertions(+), 1 deletion(-)
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 cd53a8c..5023c7e 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
@@ -77,6 +77,8 @@ import
org.apache.dolphinscheduler.service.process.ProcessService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
+import org.apache.hadoop.mapred.TaskLog.LogName;
+import org.apache.yetus.audience.InterfaceAudience.Public;
import java.io.BufferedOutputStream;
import java.io.IOException;
@@ -1102,9 +1104,13 @@ public class ProcessDefinitionServiceImpl extends
BaseServiceImpl implements Pro
putMsg(result, Status.PROCESS_DEFINE_NOT_EXIST, codes);
return result;
}
+ HashMap<Long, Project> userProjects = new
HashMap(Constants.DEFAULT_HASH_MAP_SIZE);
+
projectMapper.queryProjectCreatedAndAuthorizedByUserId(loginUser.getId())
+ .forEach(userProject ->
userProjects.put(userProject.getCode(), userProject));
+
// check processDefinition exist in project
List<ProcessDefinition> processDefinitionListInProject =
processDefinitionList.stream().
- filter(o -> projectCode ==
o.getProjectCode()).collect(Collectors.toList());
+ filter(o ->
userProjects.containsKey(o.getProjectCode())).collect(Collectors.toList());
if (CollectionUtils.isEmpty(processDefinitionListInProject)) {
putMsg(result, Status.PROCESS_DEFINE_NOT_EXIST, codes);
return result;
diff --git
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProcessDefinitionServiceTest.java
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProcessDefinitionServiceTest.java
index e3f77b0..607341d 100644
---
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProcessDefinitionServiceTest.java
+++
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProcessDefinitionServiceTest.java
@@ -546,8 +546,13 @@ public class ProcessDefinitionServiceTest {
ProcessDefinition processDefinition = getProcessDefinition();
List<ProcessDefinition> processDefinitionList = new ArrayList<>();
processDefinitionList.add(processDefinition);
+
Mockito.when(processDefineMapper.queryByCodes(defineCodeSet)).thenReturn(processDefinitionList);
Mockito.when(processService.genDagData(Mockito.any())).thenReturn(new
DagData(processDefinition, null, null));
+ Project project1 = getProject(projectCode);
+ List<Project> projects = new ArrayList<>();
+ projects.add(project1);
+
Mockito.when(projectMapper.queryProjectCreatedAndAuthorizedByUserId(loginUser.getId())).thenReturn(projects);
Map<String, Object> successRes =
processDefinitionService.getNodeListMapByDefinitionCodes(loginUser,
projectCode, defineCodes);
Assert.assertEquals(Status.SUCCESS, successRes.get(Constants.STATUS));
diff --git
a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java
b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java
index 6632e48..aba6011 100644
---
a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java
+++
b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java
@@ -261,6 +261,11 @@ public final class Constants {
*/
public static final int DEFAULT_ADMIN_PERMISSION = 7;
+ /**
+ * default hash map size
+ */
+ public static final int DEFAULT_HASH_MAP_SIZE = 16;
+
/**
* all permissions