fix - 调整处理 engine 事件的 context 并发问题

This commit is contained in:
wangli 2025-11-07 16:16:18 +08:00
parent 3c8279e45c
commit 956b470786
7 changed files with 7 additions and 14 deletions

View File

@ -52,10 +52,9 @@ public class EngineActivityCallbackEventListener extends AbstractFlowableEventLi
}
private List<BpmnActivityEventListener> getOrderedListeners() {
ActivityOperationContext context = new ActivityOperationContext();
List<BpmnActivityEventListener> orderListeners = new ArrayList<>();
activityListeners.ifAvailable(orderListeners::addAll);
orderListeners.forEach(i -> i.setContext(context));
orderListeners.forEach(i -> i.setContext(new ActivityOperationContext()));
return orderListeners;
}

View File

@ -38,10 +38,9 @@ public class EngineActivityEndEventListener implements ExecutionListener {
}
private List<BpmnActivityEventListener> getOrderedListeners() {
ActivityOperationContext context = new ActivityOperationContext();
List<BpmnActivityEventListener> orderListeners = new ArrayList<>();
activityListeners.ifAvailable(orderListeners::addAll);
orderListeners.forEach(i -> i.setContext(context));
orderListeners.forEach(i -> i.setContext(new ActivityOperationContext()));
return orderListeners;
}
}

View File

@ -61,10 +61,9 @@ public class EngineActivityExtEventListener extends AbstractFlowableEventListene
}
private List<BpmnActivityEventListener> getOrderedListeners() {
ActivityOperationContext context = new ActivityOperationContext();
List<BpmnActivityEventListener> orderListeners = new ArrayList<>();
activityListeners.ifAvailable(orderListeners::addAll);
orderListeners.forEach(i -> i.setContext(context));
orderListeners.forEach(i -> i.setContext(new ActivityOperationContext()));
return orderListeners;
}

View File

@ -38,10 +38,9 @@ public class EngineActivityStartEventListener implements ExecutionListener {
}
private List<BpmnActivityEventListener> getOrderedListeners() {
ActivityOperationContext context = new ActivityOperationContext();
List<BpmnActivityEventListener> orderListeners = new ArrayList<>();
activityListeners.ifAvailable(orderListeners::addAll);
orderListeners.forEach(i -> i.setContext(context));
orderListeners.forEach(i -> i.setContext(new ActivityOperationContext()));
return orderListeners;
}
}

View File

@ -116,10 +116,9 @@ public class EngineNoticeEventListener extends AbstractFlowableEventListener {
}
private List<BpmnMessagePushEventListener> getOrderedListeners() {
NoticeOperationContext context = new NoticeOperationContext();
List<BpmnMessagePushEventListener> orderListeners = new ArrayList<>();
processEventListeners.ifAvailable(orderListeners::addAll);
orderListeners.forEach(i -> i.setContext(context));
orderListeners.forEach(i -> i.setContext(new NoticeOperationContext()));
return orderListeners;
}

View File

@ -167,10 +167,9 @@ public class EngineProcessInstanceEventListener extends AbstractFlowableEngineEv
}
private List<BpmnProcessEventListener> getOrderedListeners() {
ProcessOperationContext context = new ProcessOperationContext();
List<BpmnProcessEventListener> orderListeners = new ArrayList<>();
processEventListeners.ifAvailable(orderListeners::addAll);
orderListeners.forEach(i -> i.setContext(context));
orderListeners.forEach(i -> i.setContext(new ProcessOperationContext()));
return orderListeners;
}

View File

@ -77,10 +77,9 @@ public class EngineTaskEventListener implements TaskListener {
* @return
*/
private List<BpmnTaskEventListener> getOrderedListeners() {
TaskOperationContext context = new TaskOperationContext();
List<BpmnTaskEventListener> orderListeners = new ArrayList<>();
taskEventListeners.ifAvailable(orderListeners::addAll);
orderListeners.forEach(i -> i.setContext(context));
orderListeners.forEach(i -> i.setContext(new TaskOperationContext()));
return orderListeners;
}