AnsweredAssumed Answered

Boundary Timers do not work in Activiti 6

Question asked by maxlich on Oct 29, 2018

I use boundary timer, and it does not work. If there are no elements after the timer, the process goes on this sequenceflow. If there is a service task after the timer, the process goes on the normal path. Here is a part of my bpm scheme:

I use Spring 5 for creating of the beans for Activiti. Here is the example of my bean configuration class:


SpringProcessEngineConfiguration processEngineConfiguration(@Qualifier("dataSourceForActiviti") DataSource dataSourceForActiviti,
@Qualifier("transactionManagerForActiviti") PlatformTransactionManager transactionManagerForActiviti) {
SpringProcessEngineConfiguration processEngineConfiguration = new SpringProcessEngineConfiguration();


processEngineConfiguration.setDeploymentResources(new Resource[]{
new ClassPathResource("bpm/LicensingProcess.bpmn20.xml"),
new ClassPathResource("bpm/ReissuanceLicenseProcess.bpmn20.xml"),
new ClassPathResource("bpm/IssueOfDuplicateProcess.bpmn20.xml"),
new ClassPathResource("bpm/IssuanceOfCopyProcess.bpmn20.xml"),
new ClassPathResource("bpm/TerminationOfLicenseProcess.bpmn20.xml"),
new ClassPathResource("bpm/RLic6ExtractFromRegisterOfLicensesProcess.bpmn20.xml")

return processEngineConfiguration;

ProcessEngineFactoryBean processEngineFactoryBean(SpringProcessEngineConfiguration processEngineConfiguration) {
ProcessEngineFactoryBean processEngineFactoryBean = new ProcessEngineFactoryBean();
return processEngineFactoryBean;

RepositoryService repositoryService(ProcessEngineFactoryBean processEngineFactoryBean) throws Exception {
return processEngineFactoryBean.getObject().getRepositoryService();

RuntimeService runtimeService(ProcessEngineFactoryBean processEngineFactoryBean) throws Exception {
return processEngineFactoryBean.getObject().getRuntimeService();

TaskService taskService(ProcessEngineFactoryBean processEngineFactoryBean) throws Exception {
return processEngineFactoryBean.getObject().getTaskService();


I tried to comment and uncomment the line setAsyncExecutorActivate(true), and there was no difference. At the same time, if you put the timer as a separate unit, everything works.


PS The solution from User task, Timer Boundary Event And Spring  also didn't work


PSS At the same time, a similar scheme works great in the Activiti Modeler. And I can not understand why it works there and does not work for me


PSS I have written a simple application on the Swing and without Spring. I used the 'StandaloneProcessEngineConfiguration' class and I didn`t use the 'SpringProcessEngineConfiguration' and 'ProcessEngineFactoryBean' classes. And it works but if i put the service task or script task after boundary timer (not timer event as a separate element), it does works. It writes that it cannot find an engine for groovy (for script task), and it writes that it cannot instantiate a specified class (for service task). If there is an user task after boundary timer, it works.