Merge branch 'develop' into stable

This commit is contained in:
2025-02-12 15:16:48 -05:00

View File

@@ -24,6 +24,7 @@ import org.activiti.engine.delegate.event.ActivitiEvent;
import org.activiti.engine.delegate.event.ActivitiEventListener; import org.activiti.engine.delegate.event.ActivitiEventListener;
import org.activiti.engine.delegate.event.ActivitiEventType; import org.activiti.engine.delegate.event.ActivitiEventType;
import org.activiti.engine.impl.bpmn.behavior.NoneStartEventActivityBehavior; import org.activiti.engine.impl.bpmn.behavior.NoneStartEventActivityBehavior;
import org.activiti.engine.impl.context.Context;
import org.activiti.engine.impl.persistence.entity.DeploymentEntity; import org.activiti.engine.impl.persistence.entity.DeploymentEntity;
import org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity; import org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity;
import org.activiti.engine.impl.util.ProcessDefinitionUtil; import org.activiti.engine.impl.util.ProcessDefinitionUtil;
@@ -268,9 +269,18 @@ public class MQProcessDefinitionMonitor implements ActivitiEventListener, Applic
return true; return true;
} }
private BpmnModel getBpmnModel(String processDefId) {
if (Context.getProcessDefinitionHelper() == null) {
// typically during initial startup
return this.services.getRepositoryService().getBpmnModel(processDefId);
} else {
// we cannot use the RepositoryService to get the BpmnModel as it is not yet cached in TX
return ProcessDefinitionUtil.getBpmnModel(processDefId);
}
}
protected ServiceTask findMqStartSubscribeTask(String processDefId) { protected ServiceTask findMqStartSubscribeTask(String processDefId) {
// we cannot use the RepositoryService to get the BpmnModel as it is not yet cached in TX BpmnModel model = this.getBpmnModel(processDefId);
BpmnModel model = ProcessDefinitionUtil.getBpmnModel(processDefId);
StartEvent startElement = this.findMqPlainStartEvent(processDefId, model); StartEvent startElement = this.findMqPlainStartEvent(processDefId, model);
if (startElement == null) if (startElement == null)
return null; return null;