github-advanced-security[bot] commented on code in PR #16327:
URL:
https://github.com/apache/dolphinscheduler/pull/16327#discussion_r1679293571
##########
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ExecutorController.java:
##########
@@ -348,39 +338,27 @@
@ResponseStatus(HttpStatus.OK)
@ApiException(BATCH_EXECUTE_PROCESS_INSTANCE_ERROR)
@OperatorLog(auditType = AuditType.PROCESS_BATCH_RERUN)
- public Result batchExecute(@RequestAttribute(value =
Constants.SESSION_USER) User loginUser,
- @PathVariable long projectCode,
- @RequestParam("processInstanceIds") String
processInstanceIds,
- @RequestParam("executeType") ExecuteType
executeType) {
- Map<String, Object> result = new HashMap<>();
- List<String> executeFailedIdList = new ArrayList<>();
- if (!StringUtils.isEmpty(processInstanceIds)) {
- String[] processInstanceIdArray =
processInstanceIds.split(Constants.COMMA);
-
- for (String strProcessInstanceId : processInstanceIdArray) {
- int processInstanceId = Integer.parseInt(strProcessInstanceId);
- try {
- Map<String, Object> singleResult =
- execService.execute(loginUser, projectCode,
processInstanceId, executeType);
- if
(!Status.SUCCESS.equals(singleResult.get(Constants.STATUS))) {
- log.error("Start to execute process instance error,
projectCode:{}, processInstanceId:{}.",
- projectCode, processInstanceId);
- executeFailedIdList.add((String)
singleResult.get(Constants.MSG));
- } else
- log.info("Start to execute process instance complete,
projectCode:{}, processInstanceId:{}.",
- projectCode, processInstanceId);
- } catch (Exception e) {
- executeFailedIdList
-
.add(MessageFormat.format(Status.PROCESS_INSTANCE_ERROR.getMsg(),
strProcessInstanceId));
- }
+ public Result<Void> batchControlWorkflowInstance(@RequestAttribute(value =
Constants.SESSION_USER) User loginUser,
+
@RequestParam("processInstanceIds") String processInstanceIds,
+
@RequestParam("executeType") ExecuteType executeType) {
+
+ String[] processInstanceIdArray =
processInstanceIds.split(Constants.COMMA);
+ List<String> errorMessage = new ArrayList<>();
+ for (String strProcessInstanceId : processInstanceIdArray) {
+ int processInstanceId = Integer.parseInt(strProcessInstanceId);
Review Comment:
## Missing catch of NumberFormatException
Potential uncaught 'java.lang.NumberFormatException'.
[Show more
details](https://github.com/apache/dolphinscheduler/security/code-scanning/4243)
##########
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ExecutorController.java:
##########
@@ -348,39 +338,27 @@
@ResponseStatus(HttpStatus.OK)
@ApiException(BATCH_EXECUTE_PROCESS_INSTANCE_ERROR)
@OperatorLog(auditType = AuditType.PROCESS_BATCH_RERUN)
- public Result batchExecute(@RequestAttribute(value =
Constants.SESSION_USER) User loginUser,
- @PathVariable long projectCode,
- @RequestParam("processInstanceIds") String
processInstanceIds,
- @RequestParam("executeType") ExecuteType
executeType) {
- Map<String, Object> result = new HashMap<>();
- List<String> executeFailedIdList = new ArrayList<>();
- if (!StringUtils.isEmpty(processInstanceIds)) {
- String[] processInstanceIdArray =
processInstanceIds.split(Constants.COMMA);
-
- for (String strProcessInstanceId : processInstanceIdArray) {
- int processInstanceId = Integer.parseInt(strProcessInstanceId);
- try {
- Map<String, Object> singleResult =
- execService.execute(loginUser, projectCode,
processInstanceId, executeType);
- if
(!Status.SUCCESS.equals(singleResult.get(Constants.STATUS))) {
- log.error("Start to execute process instance error,
projectCode:{}, processInstanceId:{}.",
- projectCode, processInstanceId);
- executeFailedIdList.add((String)
singleResult.get(Constants.MSG));
- } else
- log.info("Start to execute process instance complete,
projectCode:{}, processInstanceId:{}.",
- projectCode, processInstanceId);
- } catch (Exception e) {
- executeFailedIdList
-
.add(MessageFormat.format(Status.PROCESS_INSTANCE_ERROR.getMsg(),
strProcessInstanceId));
- }
+ public Result<Void> batchControlWorkflowInstance(@RequestAttribute(value =
Constants.SESSION_USER) User loginUser,
+
@RequestParam("processInstanceIds") String processInstanceIds,
+
@RequestParam("executeType") ExecuteType executeType) {
+
+ String[] processInstanceIdArray =
processInstanceIds.split(Constants.COMMA);
+ List<String> errorMessage = new ArrayList<>();
+ for (String strProcessInstanceId : processInstanceIdArray) {
+ int processInstanceId = Integer.parseInt(strProcessInstanceId);
+ try {
+ execService.controlWorkflowInstance(loginUser,
processInstanceId, executeType);
+ log.info("Success do action {} on workflowInstance: {}",
executeType, processInstanceId);
Review Comment:
## Log Injection
This log entry depends on a [user-provided value](1).
[Show more
details](https://github.com/apache/dolphinscheduler/security/code-scanning/4245)
##########
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ExecutorController.java:
##########
@@ -348,39 +338,27 @@
@ResponseStatus(HttpStatus.OK)
@ApiException(BATCH_EXECUTE_PROCESS_INSTANCE_ERROR)
@OperatorLog(auditType = AuditType.PROCESS_BATCH_RERUN)
- public Result batchExecute(@RequestAttribute(value =
Constants.SESSION_USER) User loginUser,
- @PathVariable long projectCode,
- @RequestParam("processInstanceIds") String
processInstanceIds,
- @RequestParam("executeType") ExecuteType
executeType) {
- Map<String, Object> result = new HashMap<>();
- List<String> executeFailedIdList = new ArrayList<>();
- if (!StringUtils.isEmpty(processInstanceIds)) {
- String[] processInstanceIdArray =
processInstanceIds.split(Constants.COMMA);
-
- for (String strProcessInstanceId : processInstanceIdArray) {
- int processInstanceId = Integer.parseInt(strProcessInstanceId);
- try {
- Map<String, Object> singleResult =
- execService.execute(loginUser, projectCode,
processInstanceId, executeType);
- if
(!Status.SUCCESS.equals(singleResult.get(Constants.STATUS))) {
- log.error("Start to execute process instance error,
projectCode:{}, processInstanceId:{}.",
- projectCode, processInstanceId);
- executeFailedIdList.add((String)
singleResult.get(Constants.MSG));
- } else
- log.info("Start to execute process instance complete,
projectCode:{}, processInstanceId:{}.",
- projectCode, processInstanceId);
- } catch (Exception e) {
- executeFailedIdList
-
.add(MessageFormat.format(Status.PROCESS_INSTANCE_ERROR.getMsg(),
strProcessInstanceId));
- }
+ public Result<Void> batchControlWorkflowInstance(@RequestAttribute(value =
Constants.SESSION_USER) User loginUser,
+
@RequestParam("processInstanceIds") String processInstanceIds,
+
@RequestParam("executeType") ExecuteType executeType) {
+
+ String[] processInstanceIdArray =
processInstanceIds.split(Constants.COMMA);
+ List<String> errorMessage = new ArrayList<>();
+ for (String strProcessInstanceId : processInstanceIdArray) {
+ int processInstanceId = Integer.parseInt(strProcessInstanceId);
+ try {
+ execService.controlWorkflowInstance(loginUser,
processInstanceId, executeType);
+ log.info("Success do action {} on workflowInstance: {}",
executeType, processInstanceId);
+ } catch (Exception e) {
+ errorMessage.add("Failed do action " + executeType + " on
workflowInstance: " + processInstanceId
+ + "reason: " + e.getMessage());
+ log.error("Failed do action {} on workflowInstance: {}, error:
{}", executeType, processInstanceId, e);
Review Comment:
## Log Injection
This log entry depends on a [user-provided value](1).
[Show more
details](https://github.com/apache/dolphinscheduler/security/code-scanning/4246)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]