Skip to content

Commit ce7440d

Browse files
authored
[Improvement-17288] CodeGenerateException is swallowed in ProcessDefinitionDemo (#17289)
1 parent 79f686f commit ce7440d

15 files changed

Lines changed: 104 additions & 195 deletions

File tree

dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/python/PythonGateway.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ public Map<String, Object> genTaskCodeList(Integer genNum) {
179179
}
180180

181181
public Map<String, Long> getCodeAndVersion(String projectName, String workflowDefinitionName,
182-
String taskName) throws CodeGenerateUtils.CodeGenerateException {
182+
String taskName) {
183183
Project project = projectMapper.queryByName(projectName);
184184
Map<String, Long> result = new HashMap<>();
185185
// project do not exists, mean task not exists too, so we should directly return init value

dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/EnvironmentServiceImpl.java

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
import org.apache.dolphinscheduler.common.enums.AuthorizationType;
3232
import org.apache.dolphinscheduler.common.enums.UserType;
3333
import org.apache.dolphinscheduler.common.utils.CodeGenerateUtils;
34-
import org.apache.dolphinscheduler.common.utils.CodeGenerateUtils.CodeGenerateException;
3534
import org.apache.dolphinscheduler.common.utils.JSONUtils;
3635
import org.apache.dolphinscheduler.dao.entity.Environment;
3736
import org.apache.dolphinscheduler.dao.entity.EnvironmentWorkerGroupRelation;
@@ -121,16 +120,7 @@ public Long createEnvironment(User loginUser,
121120
env.setOperator(loginUser.getId());
122121
env.setCreateTime(new Date());
123122
env.setUpdateTime(new Date());
124-
long code = 0L;
125-
try {
126-
code = CodeGenerateUtils.genCode();
127-
env.setCode(code);
128-
} catch (CodeGenerateException e) {
129-
log.error("Generate environment code error.", e);
130-
}
131-
if (code == 0L) {
132-
throw new ServiceException(Status.INTERNAL_SERVER_ERROR_ARGS, "Error generating environment code");
133-
}
123+
env.setCode(CodeGenerateUtils.genCode());
134124

135125
if (environmentMapper.insert(env) > 0) {
136126
if (!StringUtils.isEmpty(workerGroups)) {

dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/K8SNamespaceServiceImpl.java

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -139,17 +139,8 @@ public Map<String, Object> registerK8sNamespace(User loginUser, String namespace
139139
return result;
140140
}
141141

142-
long code = 0L;
143-
try {
144-
code = CodeGenerateUtils.genCode();
145-
cluster.setCode(code);
146-
} catch (CodeGenerateUtils.CodeGenerateException e) {
147-
log.error("Generate cluster code error.", e);
148-
}
149-
if (code == 0L) {
150-
putMsg(result, Status.INTERNAL_SERVER_ERROR_ARGS, "Error generating cluster code");
151-
return result;
152-
}
142+
long code = CodeGenerateUtils.genCode();
143+
cluster.setCode(code);
153144

154145
K8sNamespace k8sNamespaceObj = new K8sNamespace();
155146
Date now = new Date();

dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProjectParameterServiceImpl.java

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -92,24 +92,18 @@ public Result createProjectParameter(User loginUser, long projectCode, String pr
9292

9393
Date now = new Date();
9494

95-
try {
96-
projectParameter = ProjectParameter
97-
.builder()
98-
.paramName(projectParameterName)
99-
.paramValue(projectParameterValue)
100-
.paramDataType(projectParameterDataType)
101-
.code(CodeGenerateUtils.genCode())
102-
.projectCode(projectCode)
103-
.userId(loginUser.getId())
104-
.operator(loginUser.getId())
105-
.createTime(now)
106-
.updateTime(now)
107-
.build();
108-
} catch (CodeGenerateUtils.CodeGenerateException e) {
109-
log.error("Generate project parameter code error.", e);
110-
putMsg(result, Status.CREATE_PROJECT_PARAMETER_ERROR);
111-
return result;
112-
}
95+
projectParameter = ProjectParameter
96+
.builder()
97+
.paramName(projectParameterName)
98+
.paramValue(projectParameterValue)
99+
.paramDataType(projectParameterDataType)
100+
.code(CodeGenerateUtils.genCode())
101+
.projectCode(projectCode)
102+
.userId(loginUser.getId())
103+
.operator(loginUser.getId())
104+
.createTime(now)
105+
.updateTime(now)
106+
.build();
113107

114108
if (projectParameterMapper.insert(projectParameter) > 0) {
115109
log.info("Project parameter is created and id is :{}", projectParameter.getId());

dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProjectServiceImpl.java

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
import org.apache.dolphinscheduler.common.enums.AuthorizationType;
3232
import org.apache.dolphinscheduler.common.enums.UserType;
3333
import org.apache.dolphinscheduler.common.utils.CodeGenerateUtils;
34-
import org.apache.dolphinscheduler.common.utils.CodeGenerateUtils.CodeGenerateException;
3534
import org.apache.dolphinscheduler.dao.entity.Project;
3635
import org.apache.dolphinscheduler.dao.entity.ProjectUser;
3736
import org.apache.dolphinscheduler.dao.entity.ProjectWorkflowDefinitionCount;
@@ -120,22 +119,16 @@ public Result createProject(User loginUser, String name, String desc) {
120119

121120
Date now = new Date();
122121

123-
try {
124-
project = Project
125-
.builder()
126-
.name(name)
127-
.code(CodeGenerateUtils.genCode())
128-
.description(desc)
129-
.userId(loginUser.getId())
130-
.userName(loginUser.getUserName())
131-
.createTime(now)
132-
.updateTime(now)
133-
.build();
134-
} catch (CodeGenerateException e) {
135-
log.error("Generate workflow definition code error.", e);
136-
putMsg(result, Status.CREATE_PROJECT_ERROR);
137-
return result;
138-
}
122+
project = Project
123+
.builder()
124+
.name(name)
125+
.code(CodeGenerateUtils.genCode())
126+
.description(desc)
127+
.userId(loginUser.getId())
128+
.userName(loginUser.getUserName())
129+
.createTime(now)
130+
.updateTime(now)
131+
.build();
139132

140133
if (projectMapper.insert(project) > 0) {
141134
log.info("Project is created and id is :{}", project.getId());

dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@
4545
import org.apache.dolphinscheduler.common.enums.TaskExecuteType;
4646
import org.apache.dolphinscheduler.common.enums.TimeoutFlag;
4747
import org.apache.dolphinscheduler.common.utils.CodeGenerateUtils;
48-
import org.apache.dolphinscheduler.common.utils.CodeGenerateUtils.CodeGenerateException;
4948
import org.apache.dolphinscheduler.common.utils.JSONUtils;
5049
import org.apache.dolphinscheduler.dao.entity.Project;
5150
import org.apache.dolphinscheduler.dao.entity.TaskDefinition;
@@ -862,14 +861,11 @@ public Map<String, Object> genTaskCodeList(Integer genNum) {
862861
return result;
863862
}
864863
List<Long> taskCodes = new ArrayList<>();
865-
try {
866-
for (int i = 0; i < genNum; i++) {
867-
taskCodes.add(CodeGenerateUtils.genCode());
868-
}
869-
} catch (CodeGenerateException e) {
870-
log.error("Generate task definition code error.", e);
871-
putMsg(result, Status.INTERNAL_SERVER_ERROR_ARGS, "Error generating task definition code");
864+
865+
for (int i = 0; i < genNum; i++) {
866+
taskCodes.add(CodeGenerateUtils.genCode());
872867
}
868+
873869
putMsg(result, Status.SUCCESS);
874870
// return workflowDefinitionCode
875871
result.put(Constants.DATA_LIST, taskCodes);

dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowDefinitionServiceImpl.java

Lines changed: 12 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,6 @@
7575
import org.apache.dolphinscheduler.common.lifecycle.ServerLifeCycleManager;
7676
import org.apache.dolphinscheduler.common.model.TaskNodeRelation;
7777
import org.apache.dolphinscheduler.common.utils.CodeGenerateUtils;
78-
import org.apache.dolphinscheduler.common.utils.CodeGenerateUtils.CodeGenerateException;
7978
import org.apache.dolphinscheduler.common.utils.DateUtils;
8079
import org.apache.dolphinscheduler.common.utils.JSONUtils;
8180
import org.apache.dolphinscheduler.dao.entity.DagData;
@@ -349,14 +348,7 @@ public WorkflowDefinition createSingleWorkflowDefinition(User loginUser,
349348
WorkflowDefinition workflowDefinition = workflowCreateRequest.convert2WorkflowDefinition();
350349
this.createWorkflowValid(loginUser, workflowDefinition);
351350

352-
long workflowDefinitionCode;
353-
try {
354-
workflowDefinitionCode = CodeGenerateUtils.genCode();
355-
} catch (CodeGenerateException e) {
356-
throw new ServiceException(Status.INTERNAL_SERVER_ERROR_ARGS);
357-
}
358-
359-
workflowDefinition.setCode(workflowDefinitionCode);
351+
workflowDefinition.setCode(CodeGenerateUtils.genCode());
360352
workflowDefinition.setUserId(loginUser.getId());
361353

362354
int create = workflowDefinitionMapper.insert(workflowDefinition);
@@ -1424,7 +1416,7 @@ private DataSource queryDatasourceByNameAndUser(String datasourceName, User logi
14241416
}
14251417

14261418
private TaskDefinitionLog buildNormalSqlTaskDefinition(String taskName, DataSource dataSource,
1427-
String sql) throws CodeGenerateException {
1419+
String sql) {
14281420
TaskDefinitionLog taskDefinition = new TaskDefinitionLog();
14291421
taskDefinition.setName(taskName);
14301422
taskDefinition.setFlag(Flag.YES);
@@ -1480,15 +1472,8 @@ protected boolean checkAndImport(User loginUser,
14801472
workflowDefinition.setId(null);
14811473
workflowDefinition.setProjectCode(projectCode);
14821474
workflowDefinition.setUserId(loginUser.getId());
1483-
try {
1484-
workflowDefinition.setCode(CodeGenerateUtils.genCode());
1485-
} catch (CodeGenerateException e) {
1486-
log.error(
1487-
"Save workflow definition error because generate workflow definition code error, projectCode:{}.",
1488-
projectCode, e);
1489-
putMsg(result, Status.CREATE_WORKFLOW_DEFINITION_ERROR);
1490-
return false;
1491-
}
1475+
workflowDefinition.setCode(CodeGenerateUtils.genCode());
1476+
14921477
List<TaskDefinition> taskDefinitionList = dagDataSchedule.getTaskDefinitionList();
14931478
Map<Long, Long> taskCodeMap = new HashMap<>();
14941479
Date now = new Date();
@@ -1503,16 +1488,10 @@ protected boolean checkAndImport(User loginUser,
15031488
taskDefinitionLog.setUpdateTime(now);
15041489
taskDefinitionLog.setOperator(loginUser.getId());
15051490
taskDefinitionLog.setOperateTime(now);
1506-
try {
1507-
long code = CodeGenerateUtils.genCode();
1508-
taskCodeMap.put(taskDefinitionLog.getCode(), code);
1509-
taskDefinitionLog.setCode(code);
1510-
} catch (CodeGenerateException e) {
1511-
log.error("Generate task definition code error, projectCode:{}, workflowDefinitionCode:{}",
1512-
projectCode, workflowDefinition.getCode(), e);
1513-
putMsg(result, Status.INTERNAL_SERVER_ERROR_ARGS, "Error generating task definition code");
1514-
return false;
1515-
}
1491+
long code = CodeGenerateUtils.genCode();
1492+
taskCodeMap.put(taskDefinitionLog.getCode(), code);
1493+
taskDefinitionLog.setCode(code);
1494+
15161495
taskDefinitionLogList.add(taskDefinitionLog);
15171496
}
15181497
int insert = taskDefinitionMapper.batchInsert(taskDefinitionLogList);
@@ -2120,15 +2099,8 @@ protected void doBatchOperateWorkflowDefinition(User loginUser,
21202099
List<TaskDefinitionLog> taskDefinitionLogs =
21212100
taskDefinitionLogDao.queryTaskDefineLogList(workflowTaskRelations);
21222101
Map<Long, Long> taskCodeMap = new HashMap<>();
2123-
taskDefinitionLogs.forEach(taskDefinitionLog -> {
2124-
try {
2125-
taskCodeMap.put(taskDefinitionLog.getCode(), CodeGenerateUtils.genCode());
2126-
} catch (CodeGenerateException e) {
2127-
log.error("Generate task definition code error, projectCode:{}.", targetProjectCode, e);
2128-
putMsg(result, Status.INTERNAL_SERVER_ERROR_ARGS);
2129-
throw new ServiceException(Status.INTERNAL_SERVER_ERROR_ARGS);
2130-
}
2131-
});
2102+
taskDefinitionLogs.forEach(
2103+
taskDefinitionLog -> taskCodeMap.put(taskDefinitionLog.getCode(), CodeGenerateUtils.genCode()));
21322104
for (TaskDefinitionLog taskDefinitionLog : taskDefinitionLogs) {
21332105
taskDefinitionLog.setCode(taskCodeMap.get(taskDefinitionLog.getCode()));
21342106
taskDefinitionLog.setProjectCode(targetProjectCode);
@@ -2164,13 +2136,8 @@ protected void doBatchOperateWorkflowDefinition(User loginUser,
21642136
}
21652137
}
21662138
final long oldWorkflowDefinitionCode = workflowDefinition.getCode();
2167-
try {
2168-
workflowDefinition.setCode(CodeGenerateUtils.genCode());
2169-
} catch (CodeGenerateException e) {
2170-
log.error("Generate workflow definition code error, projectCode:{}.", targetProjectCode, e);
2171-
putMsg(result, Status.INTERNAL_SERVER_ERROR_ARGS);
2172-
throw new ServiceException(Status.INTERNAL_SERVER_ERROR_ARGS);
2173-
}
2139+
workflowDefinition.setCode(CodeGenerateUtils.genCode());
2140+
21742141
workflowDefinition.setId(null);
21752142
workflowDefinition.setUserId(loginUser.getId());
21762143
workflowDefinition.setName(getNewName(workflowDefinition.getName(), COPY_SUFFIX));

dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/python/PythonGatewayTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
package org.apache.dolphinscheduler.api.python;
1919

2020
import org.apache.dolphinscheduler.api.service.ResourcesService;
21-
import org.apache.dolphinscheduler.common.utils.CodeGenerateUtils;
2221
import org.apache.dolphinscheduler.dao.entity.Project;
2322
import org.apache.dolphinscheduler.dao.entity.TaskDefinition;
2423
import org.apache.dolphinscheduler.dao.entity.User;
@@ -62,7 +61,7 @@ public class PythonGatewayTest {
6261
private ResourcesService resourcesService;
6362

6463
@Test
65-
public void testGetCodeAndVersion() throws CodeGenerateUtils.CodeGenerateException {
64+
public void testGetCodeAndVersion() {
6665
Project project = getTestProject();
6766
Mockito.when(projectMapper.queryByName(project.getName())).thenReturn(project);
6867

dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProjectParameterServiceTest.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import static org.junit.jupiter.api.Assertions.assertEquals;
2222
import static org.junit.jupiter.api.Assertions.assertNotNull;
2323
import static org.junit.jupiter.api.Assertions.assertNull;
24+
import static org.junit.jupiter.api.Assertions.assertThrows;
2425
import static org.mockito.ArgumentMatchers.any;
2526
import static org.mockito.ArgumentMatchers.anyLong;
2627
import static org.mockito.Mockito.when;
@@ -90,9 +91,9 @@ public void testCreateProjectParameter() {
9091
try (MockedStatic<CodeGenerateUtils> ignored = Mockito.mockStatic(CodeGenerateUtils.class)) {
9192
when(CodeGenerateUtils.genCode()).thenThrow(CodeGenerateUtils.CodeGenerateException.class);
9293

93-
result = projectParameterService.createProjectParameter(loginUser, projectCode, "key", "value",
94-
DataType.VARCHAR.name());
95-
assertEquals(Status.CREATE_PROJECT_PARAMETER_ERROR.getCode(), result.getCode());
94+
assertThrows(CodeGenerateUtils.CodeGenerateException.class,
95+
() -> projectParameterService.createProjectParameter(loginUser, projectCode, "key", "value",
96+
DataType.VARCHAR.name()));
9697
}
9798

9899
// PROJECT_PARAMETER_ALREADY_EXISTS

dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/impl/EnvironmentServiceTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import static org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant.ENVIRONMENT_DELETE;
2424
import static org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant.ENVIRONMENT_UPDATE;
2525
import static org.junit.jupiter.api.Assertions.assertEquals;
26+
import static org.junit.jupiter.api.Assertions.assertThrows;
2627
import static org.mockito.ArgumentMatchers.any;
2728
import static org.mockito.Mockito.when;
2829

@@ -140,7 +141,7 @@ public void testCreateEnvironment() {
140141
try (MockedStatic<CodeGenerateUtils> ignored = Mockito.mockStatic(CodeGenerateUtils.class)) {
141142
when(CodeGenerateUtils.genCode()).thenThrow(CodeGenerateUtils.CodeGenerateException.class);
142143

143-
assertThrowsServiceException(Status.INTERNAL_SERVER_ERROR_ARGS,
144+
assertThrows(CodeGenerateUtils.CodeGenerateException.class,
144145
() -> environmentService.createEnvironment(adminUser, "testName", "test", "test", workerGroups));
145146
}
146147
}

0 commit comments

Comments
 (0)