<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: TimerEntity was updated by another transaction concurrently in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/timerentity-was-updated-by-another-transaction-concurrently/m-p/65784#M41688</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;We hit similiar case for single process instance. There's some race condition in timer handling.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;POC code in &lt;/SPAN&gt;&lt;A href="https://github.com/geekonek/activiti-timer-racecondition-poc" rel="nofollow noopener noreferrer"&gt;https://github.com/geekonek/activiti-timer-racecondition-poc&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Whole process seems to be working ok, just two exceptions are logged.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt;Oct 25, 2011 10:32:29 AM org.activiti.engine.impl.interceptor.CommandContext close&lt;BR /&gt;SEVERE: Error while closing command context&lt;BR /&gt;org.activiti.engine.ActivitiOptimisticLockingException: TimerEntity[174] was updated by another transaction concurrently&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.db.DbSqlSession.flushUpdates(DbSqlSession.java:435)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.db.DbSqlSession.flush(DbSqlSession.java:348)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.CommandContext.flushSessions(CommandContext.java:147)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.CommandContext.close(CommandContext.java:103)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:49)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.jobexecutor.JobAcquisitionThread.run(JobAcquisitionThread.java:63)&lt;BR /&gt;Oct 25, 2011 10:32:29 AM org.activiti.engine.impl.jobexecutor.JobAcquisitionThread run&lt;BR /&gt;SEVERE: exception during job acquisition: TimerEntity[174] was updated by another transaction concurrently&lt;BR /&gt;org.activiti.engine.ActivitiOptimisticLockingException: TimerEntity[174] was updated by another transaction concurrently&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.db.DbSqlSession.flushUpdates(DbSqlSession.java:435)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.db.DbSqlSession.flush(DbSqlSession.java:348)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.CommandContext.flushSessions(CommandContext.java:147)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.CommandContext.close(CommandContext.java:103)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:49)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.jobexecutor.JobAcquisitionThread.run(JobAcquisitionThread.java:63)&lt;BR /&gt;&lt;/CODE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 25 Oct 2011 08:57:18 GMT</pubDate>
    <dc:creator>geekonek</dc:creator>
    <dc:date>2011-10-25T08:57:18Z</dc:date>
    <item>
      <title>TimerEntity was updated by another transaction concurrently</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/timerentity-was-updated-by-another-transaction-concurrently/m-p/65782#M41686</link>
      <description>Hello,I've created a simple test case to show a optimistic locking error with the TimerCatchEvent. I've tried to build a unit test from this, but somehow it only occurs when directly implemented in the process.We're currently using WebSphere 8.0, Activiti-5.9-SNAPSHOT as well as Oracle as DB for the</description>
      <pubDate>Fri, 21 Oct 2011 09:43:50 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/timerentity-was-updated-by-another-transaction-concurrently/m-p/65782#M41686</guid>
      <dc:creator>bardioc</dc:creator>
      <dc:date>2011-10-21T09:43:50Z</dc:date>
    </item>
    <item>
      <title>Re: TimerEntity was updated by another transaction concurrently</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/timerentity-was-updated-by-another-transaction-concurrently/m-p/65783#M41687</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I found out, that in the exception, the flushUpdates in DbSqlSession checks, whether exactly 1 row is updated:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt;&amp;nbsp; protected void flushUpdates(List&amp;lt;PersistentObject&amp;gt; updatedObjects) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // … left out code&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int updatedRecords = sqlSession.update(updateStatement, updatedObject);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (updatedRecords!=1) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new ActivitiOptimisticLockingException(toString(updatedObject)+" was updated by another transaction concurrently");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; updatedObjects.clear();&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;The method is called first for a TimerEntity (hash A) resulting in 1 update, the second time for another Timer Entity (hash B) resulting in 0 updates. This second call leads to the exception. However, why should this be a concurrent update, if nothing has been updated?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I found out, that actually, TimerEntity (hash A) and Timer Entity (Hash B) reflect the same timer. Both created by the JobAcquisitionThread. It seems, the JobAcquisitonThread runs once through its 'run()' method to execute the timer, and then again on its next 'run()' finds the timer once more. Thats why the second call leads to the concurrent update.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'll try to dig deeper into this code and to find out, how one can prevent the Acquisition thread from finding the same timer again.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 22 Oct 2011 14:04:38 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/timerentity-was-updated-by-another-transaction-concurrently/m-p/65783#M41687</guid>
      <dc:creator>bardioc</dc:creator>
      <dc:date>2011-10-22T14:04:38Z</dc:date>
    </item>
    <item>
      <title>Re: TimerEntity was updated by another transaction concurrently</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/timerentity-was-updated-by-another-transaction-concurrently/m-p/65784#M41688</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;We hit similiar case for single process instance. There's some race condition in timer handling.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;POC code in &lt;/SPAN&gt;&lt;A href="https://github.com/geekonek/activiti-timer-racecondition-poc" rel="nofollow noopener noreferrer"&gt;https://github.com/geekonek/activiti-timer-racecondition-poc&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Whole process seems to be working ok, just two exceptions are logged.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt;Oct 25, 2011 10:32:29 AM org.activiti.engine.impl.interceptor.CommandContext close&lt;BR /&gt;SEVERE: Error while closing command context&lt;BR /&gt;org.activiti.engine.ActivitiOptimisticLockingException: TimerEntity[174] was updated by another transaction concurrently&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.db.DbSqlSession.flushUpdates(DbSqlSession.java:435)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.db.DbSqlSession.flush(DbSqlSession.java:348)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.CommandContext.flushSessions(CommandContext.java:147)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.CommandContext.close(CommandContext.java:103)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:49)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.jobexecutor.JobAcquisitionThread.run(JobAcquisitionThread.java:63)&lt;BR /&gt;Oct 25, 2011 10:32:29 AM org.activiti.engine.impl.jobexecutor.JobAcquisitionThread run&lt;BR /&gt;SEVERE: exception during job acquisition: TimerEntity[174] was updated by another transaction concurrently&lt;BR /&gt;org.activiti.engine.ActivitiOptimisticLockingException: TimerEntity[174] was updated by another transaction concurrently&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.db.DbSqlSession.flushUpdates(DbSqlSession.java:435)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.db.DbSqlSession.flush(DbSqlSession.java:348)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.CommandContext.flushSessions(CommandContext.java:147)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.CommandContext.close(CommandContext.java:103)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:49)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.jobexecutor.JobAcquisitionThread.run(JobAcquisitionThread.java:63)&lt;BR /&gt;&lt;/CODE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Oct 2011 08:57:18 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/timerentity-was-updated-by-another-transaction-concurrently/m-p/65784#M41688</guid>
      <dc:creator>geekonek</dc:creator>
      <dc:date>2011-10-25T08:57:18Z</dc:date>
    </item>
    <item>
      <title>Re: TimerEntity was updated by another transaction concurrently</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/timerentity-was-updated-by-another-transaction-concurrently/m-p/65785#M41689</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have the same problem and don't know why the exceptions …&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;This might need to open a Jira …&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;BR,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Meditel&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Oct 2011 09:04:28 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/timerentity-was-updated-by-another-transaction-concurrently/m-p/65785#M41689</guid>
      <dc:creator>meditel</dc:creator>
      <dc:date>2011-10-25T09:04:28Z</dc:date>
    </item>
    <item>
      <title>Re: TimerEntity was updated by another transaction concurrently</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/timerentity-was-updated-by-another-transaction-concurrently/m-p/65786#M41690</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hey cool, good that I'm not the only one facing this.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'll open a JIRA and attach a link to the POC you provided. Hopefully someone can investigate this.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Heiko&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Oct 2011 14:01:44 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/timerentity-was-updated-by-another-transaction-concurrently/m-p/65786#M41690</guid>
      <dc:creator>bardioc</dc:creator>
      <dc:date>2011-10-26T14:01:44Z</dc:date>
    </item>
    <item>
      <title>Re: TimerEntity was updated by another transaction concurrently</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/timerentity-was-updated-by-another-transaction-concurrently/m-p/65787#M41691</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have the same problem…&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Oct 2011 06:46:15 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/timerentity-was-updated-by-another-transaction-concurrently/m-p/65787#M41691</guid>
      <dc:creator>partizano</dc:creator>
      <dc:date>2011-10-27T06:46:15Z</dc:date>
    </item>
    <item>
      <title>Re: TimerEntity was updated by another transaction concurrently</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/timerentity-was-updated-by-another-transaction-concurrently/m-p/65788#M41692</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I have created a Jira : &lt;/SPAN&gt;&lt;A href="http://jira.codehaus.org/browse/ACT-966" rel="nofollow noopener noreferrer"&gt;http://jira.codehaus.org/browse/ACT-966&lt;/A&gt;&lt;BR /&gt;&lt;SPAN&gt;Please vote.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;BR,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Meditel&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Oct 2011 09:14:55 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/timerentity-was-updated-by-another-transaction-concurrently/m-p/65788#M41692</guid>
      <dc:creator>meditel</dc:creator>
      <dc:date>2011-10-27T09:14:55Z</dc:date>
    </item>
    <item>
      <title>Re: TimerEntity was updated by another transaction concurrently</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/timerentity-was-updated-by-another-transaction-concurrently/m-p/65789#M41693</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I investigated this and I'm not encountering any problems.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Did you run into these problems in unit tests only or also in the Activiti Explorer?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Because in a unit test it's not easy to test job functionality like intermediate timers.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I've implemented a unit test that starts 100 process instances of a process definition that includes a start event, an intermediate timer event (10 seconds) and an end event.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Can you try and test you're processes in a similar way?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;public class TimerTest extends PluggableActivitiTestCase {&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; public void testTimer() throws Exception {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set the clock fixed&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Date startTime = new Date();&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; String deploymentId = repositoryService.createDeployment()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .addClasspathResource("diagrams/timer.bpmn20.xml")&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .name("timer")&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .deploy()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .getId();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // prepare stuff and start process instance&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(int i = 0; i &amp;lt; 100; i++) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ProcessInstance processInstance = runtimeService&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .startProcessInstanceByKey("helloworld");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assertNotNull(processInstance.getId());&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("id " + processInstance.getId() + " "&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + processInstance.getProcessDefinitionId());&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ClockUtil.setCurrentTime(new Date(startTime.getTime() + 12000));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; waitForJobExecutorToProcessAllJobs(5000L, 25L);&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // and the job is done&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; assertEquals(0, managementService.createJobQuery().count());&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("all jobs finished");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; processEngine.getRepositoryService().deleteDeployment(deploymentId, true);&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;}&lt;/CODE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 Oct 2011 08:12:05 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/timerentity-was-updated-by-another-transaction-concurrently/m-p/65789#M41693</guid>
      <dc:creator>trademak</dc:creator>
      <dc:date>2011-10-28T08:12:05Z</dc:date>
    </item>
    <item>
      <title>Re: TimerEntity was updated by another transaction concurrently</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/timerentity-was-updated-by-another-transaction-concurrently/m-p/65790#M41694</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;In my case i have a 3 applications running in a single tomcat instance and so i have fixed this issue by switching to false the 'jobExecutorActivate' property in 2 applications :&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;property name="jobExecutorActivate" value="false" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So if i have well understand, we must have only one jobExecutorActivate.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;BR,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Meditel&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 Oct 2011 21:08:17 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/timerentity-was-updated-by-another-transaction-concurrently/m-p/65790#M41694</guid>
      <dc:creator>meditel</dc:creator>
      <dc:date>2011-10-28T21:08:17Z</dc:date>
    </item>
    <item>
      <title>Re: TimerEntity was updated by another transaction concurrently</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/timerentity-was-updated-by-another-transaction-concurrently/m-p/65791#M41695</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;In my case i have a 3 applications running in a single tomcat instance and so i have fixed this issue by switching to false the 'jobExecutorActivate' property in 2 applications :&lt;BR /&gt;&lt;BR /&gt;&amp;lt;property name="jobExecutorActivate" value="false" /&amp;gt;&lt;BR /&gt;&lt;BR /&gt;So if i have well understand, we must have only one jobExecutorActivate.&lt;BR /&gt;&lt;BR /&gt;BR,&lt;BR /&gt;Meditel&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt;Actually from reading the documentation again and checking my special case, you seem to be right. I've to have two process engines running. One is responsible for processes started from a EJB, one for processes started from a message driven bean. Currently, both are configured the same, having its job executor set true. I added break points on both of them and even though the two processes from the example are initiated by the process engine for the MDB, the other job executor "finds" the processes. Thats the reason why they are tried twice.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I realize that this is a problem one can overcome by just having a single job executor for the whole application, respectively the same persistence database. However, we might think about finding a way to distinguish the two process engines (maybe by naming them) and make the corresponding job executor simply find jobs that belong to them? What do you think? My problem here is actually, that I create two process engines, cause I inject a data source into the EJB as well as the MDB to take advantage of the user transaction, the MDB or the EJB created. I'm currently rethinking this and try to figure out if its really necessary.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Best regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Heiko&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;@trademak: To have a unit test for this, two concurrent process engines both with activated job executor and the SAME persistence database will most probably show the issue.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 29 Oct 2011 10:01:41 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/timerentity-was-updated-by-another-transaction-concurrently/m-p/65791#M41695</guid>
      <dc:creator>bardioc</dc:creator>
      <dc:date>2011-10-29T10:01:41Z</dc:date>
    </item>
    <item>
      <title>Re: TimerEntity was updated by another transaction concurrently</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/timerentity-was-updated-by-another-transaction-concurrently/m-p/65792#M41696</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I've updated my unit test to use two separate process engines and job executors.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Now I also encountered the ActivitiOptimisticLockException, so that was a good start &lt;span class="lia-unicode-emoji" title=":winking_face:"&gt;😉&lt;/span&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I debugged a bit and found out that the error message might be a bit misleading as the job execution is going perfectly well.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;What's happening?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Let's imaging there are 10 jobs to process by 2 process engines and job executors using the same database.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;When these process engines are started at the exact same time this happens.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1. Server 1 retrieves 3 jobs (default job length) from the job table&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2. Server 2 retrieves 3 jobs (the same as server 1) from the job table&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;3. Server 1 sets itself as lock owner (sort of optimistic lock) to every of the 3 jobs&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;4. Server 2 sets itself as lock owner (sort of optimistic lock) to every of the 3 jobs&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;5. Server 1 commits the job entity changes for the 3 jobs, all is good&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;6. Server 2 commits the job entity changes for the 3 jobs, and gets an optimistic lock exception. The error message contains the same error 2 times, but the Engine only throws the error once.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;So the following error message:&lt;/SPAN&gt;&lt;BR /&gt;&lt;CODE&gt;Oct 29, 2011 5:18:41 PM org.activiti.engine.impl.interceptor.CommandContext close&lt;BR /&gt;SEVERE: Error while closing command context&lt;BR /&gt;org.activiti.engine.ActivitiOptimisticLockingException: TimerEntity[31] was updated by another transaction concurrently&lt;BR /&gt; at org.activiti.engine.impl.db.DbSqlSession.flushUpdates(DbSqlSession.java:435)&lt;BR /&gt; at org.activiti.engine.impl.db.DbSqlSession.flush(DbSqlSession.java:348)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.CommandContext.flushSessions(CommandContext.java:150)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.CommandContext.close(CommandContext.java:105)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:49)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)&lt;BR /&gt; at org.activiti.engine.impl.jobexecutor.JobAcquisitionThread.run(JobAcquisitionThread.java:63)&lt;BR /&gt;Oct 29, 2011 5:18:41 PM org.activiti.engine.impl.jobexecutor.JobAcquisitionThread run&lt;BR /&gt;SEVERE: exception during job acquisition: TimerEntity[31] was updated by another transaction concurrently&lt;BR /&gt;org.activiti.engine.ActivitiOptimisticLockingException: TimerEntity[31] was updated by another transaction concurrently&lt;BR /&gt; at org.activiti.engine.impl.db.DbSqlSession.flushUpdates(DbSqlSession.java:435)&lt;BR /&gt; at org.activiti.engine.impl.db.DbSqlSession.flush(DbSqlSession.java:348)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.CommandContext.flushSessions(CommandContext.java:150)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.CommandContext.close(CommandContext.java:105)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:49)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)&lt;BR /&gt; at org.activiti.engine.impl.jobexecutor.JobAcquisitionThread.run(JobAcquisitionThread.java:63)&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;Actually should be only one error message:&lt;/SPAN&gt;&lt;BR /&gt;&lt;CODE&gt;Oct 29, 2011 5:18:41 PM org.activiti.engine.impl.interceptor.CommandContext close&lt;BR /&gt;SEVERE: Error while closing command context&lt;BR /&gt;org.activiti.engine.ActivitiOptimisticLockingException: TimerEntity[31] was updated by another transaction concurrently&lt;BR /&gt; at org.activiti.engine.impl.db.DbSqlSession.flushUpdates(DbSqlSession.java:435)&lt;BR /&gt; at org.activiti.engine.impl.db.DbSqlSession.flush(DbSqlSession.java:348)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.CommandContext.flushSessions(CommandContext.java:150)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.CommandContext.close(CommandContext.java:105)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:49)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)&lt;BR /&gt; at org.activiti.engine.impl.jobexecutor.JobAcquisitionThread.run(JobAcquisitionThread.java:63)&lt;BR /&gt;Oct 29, 2011 5:18:41 PM org.activiti.engine.impl.jobexecutor.JobAcquisitionThread run&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;7. Server 1 executes the 3 jobs individually&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;8. Server 2 will retrieve the next 3 jobs.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So I think the Activiti Engine behavior is all good. You can easily run multiple process engines and job executors.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;But you will encounter these optimistic lock exceptions now and then.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Maybe we should change this exception into a finer level and not the severe level.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Best regards,&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 29 Oct 2011 15:28:55 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/timerentity-was-updated-by-another-transaction-concurrently/m-p/65792#M41696</guid>
      <dc:creator>trademak</dc:creator>
      <dc:date>2011-10-29T15:28:55Z</dc:date>
    </item>
    <item>
      <title>Re: TimerEntity was updated by another transaction concurrently</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/timerentity-was-updated-by-another-transaction-concurrently/m-p/65793#M41697</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;My use case is simply to let a user start a process that polls for a file every five minutes, and when it finds the file to process it.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have defined a simple process to run a Service Task (Java Program CheckForFile2.class) that checks to see if a file exists and sets a variable "fileExists" to true when it finds the file and sets the variable to false when it does not find the file.&amp;nbsp; When the Service Task completes an Exclusive Gateway is used and the output flow conditions are "${fileExists != true}" and "${fileExists == true}". The flow when the file was not found goes to a Script task that just prints on the console that the file was not found and then it goes to the IntermediateTimer ("pause5Minutes" which is actually coded to wait one minute for testing).&amp;nbsp; When the specified delay has passed, the Service Task should execute again and look for the file.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I start the process in Explorer and want the cycle to continue indefinitely until the file is found.&amp;nbsp; After a varying number of cycles, the process throws an exception:&amp;nbsp; "org.activiti.engine.ActivitiOptimisticLockingException: TimerEntity[7546] was updated by another transaction concurrently".&amp;nbsp; Then the process is unable to find the class file it just executed before invoking the timer:&amp;nbsp; "org.activiti.engine.ActivitiException: couldn't instantiate class opt.argo.com.CheckForFile2".&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I do not know if the messages about "org.activiti.engine.impl.bpmn.deployer.BpmnDeployer deploy" in the log file have anything to do with my problem, but I am not trying to deploy anything during my testing.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Please let me know if I have missed something here.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I would appreciate any help you have time to give.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is my process:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;BR /&gt;&amp;lt;definitions xmlns="&lt;A href="http://www.omg.org/spec/BPMN/20100524/MODEL" rel="nofollow noopener noreferrer"&gt;http://www.omg.org/spec/BPMN/20100524/MODEL&lt;/A&gt;" xmlns:xsi="&lt;A href="http://www.w3.org/2001/XMLSchema-instance" rel="nofollow noopener noreferrer"&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/A&gt;" xmlns:activiti="&lt;A href="http://activiti.org/bpmn" rel="nofollow noopener noreferrer"&gt;http://activiti.org/bpmn&lt;/A&gt;" xmlns:bpmndi="&lt;A href="http://www.omg.org/spec/BPMN/20100524/DI" rel="nofollow noopener noreferrer"&gt;http://www.omg.org/spec/BPMN/20100524/DI&lt;/A&gt;" xmlns:smileysurprised:mgdc="&lt;A href="http://www.omg.org/spec/DD/20100524/DC" rel="nofollow noopener noreferrer"&gt;http://www.omg.org/spec/DD/20100524/DC&lt;/A&gt;" xmlns:smileysurprised:mgdi="&lt;A href="http://www.omg.org/spec/DD/20100524/DI" rel="nofollow noopener noreferrer"&gt;http://www.omg.org/spec/DD/20100524/DI&lt;/A&gt;" typeLanguage="&lt;A href="http://www.w3.org/2001/XMLSchema" rel="nofollow noopener noreferrer"&gt;http://www.w3.org/2001/XMLSchema&lt;/A&gt;" expressionLanguage="&lt;A href="http://www.w3.org/1999/XPath" rel="nofollow noopener noreferrer"&gt;http://www.w3.org/1999/XPath&lt;/A&gt;" targetNamespace="&lt;A href="http://www.activiti.org/test" rel="nofollow noopener noreferrer"&gt;http://www.activiti.org/test&lt;/A&gt;"&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;process id="CheckForAFile2" name="CheckForAFile2"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;documentation&amp;gt;Place documentation for the 'CheckForAFile2' process here.&amp;lt;/documentation&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;startEvent id="checkForAFile2Start" name="Check For A File 2 Start"&amp;gt;&amp;lt;/startEvent&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;scriptTask id="logNotExist" name="Log That File Does Not Exist" scriptFormat="groovy"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;script&amp;gt;&amp;lt;![CDATA[now = new Date();out:smileytongue:rintln "In CheckForAFile2 Process:&amp;nbsp; File does NOT Exist… going to wait.&amp;nbsp; ${now}\n";]]&amp;gt;&amp;lt;/script&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/scriptTask&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;exclusiveGateway id="doesFileExist" name="Does File Exist"&amp;gt;&amp;lt;/exclusiveGateway&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;scriptTask id="logFileExists" name="Log That File Exists" scriptFormat="groovy"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;script&amp;gt;&amp;lt;![CDATA[print "In CheckForAFile2 Process:&amp;nbsp; File does exist.&amp;nbsp; Reached end.\n"]]&amp;gt;&amp;lt;/script&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/scriptTask&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;endEvent id="checkForAFile2End" name="Check for A File 2 End"&amp;gt;&amp;lt;/endEvent&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow2" name="" sourceRef="logFileExists" targetRef="checkForAFile2End"&amp;gt;&amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="fileNotExist" name="File Does Not Exist" sourceRef="doesFileExist" targetRef="logNotExist"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;conditionExpression xsi:type="tFormalExpression"&amp;gt;&amp;lt;![CDATA[${fileExists != true}]]&amp;gt;&amp;lt;/conditionExpression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow4" name="" sourceRef="checkForAFile2Start" targetRef="checkFileExists"&amp;gt;&amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="goToDecision" name="" sourceRef="checkFileExists" targetRef="doesFileExist"&amp;gt;&amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;intermediateCatchEvent id="pause5Minutes" name="Pause 5 Minutes"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;timerEventDefinition&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;timeDuration&amp;gt;PT1M&amp;lt;/timeDuration&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/timerEventDefinition&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/intermediateCatchEvent&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow6" name="" sourceRef="logNotExist" targetRef="pause5Minutes"&amp;gt;&amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow7" name="" sourceRef="pause5Minutes" targetRef="checkFileExists"&amp;gt;&amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="fileDoesExist" name="File Does Exist" sourceRef="doesFileExist" targetRef="logFileExists"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;conditionExpression xsi:type="tFormalExpression"&amp;gt;&amp;lt;![CDATA[${fileExists == true}]]&amp;gt;&amp;lt;/conditionExpression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;serviceTask id="checkFileExists" name="Check File Exists" activiti:class="opt.argo.com.CheckForFile2"&amp;gt;&amp;lt;/serviceTask&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;/process&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;bpmndi:BPMNDiagram id="BPMNDiagram_CheckForAFile2"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNPlane bpmnElement="CheckForAFile2" id="BPMNPlane_CheckForAFile2"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="checkForAFile2Start" id="BPMNShape_checkForAFile2Start"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="35" width="35" x="100" y="140"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="logNotExist" id="BPMNShape_logNotExist"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="55" width="105" x="368" y="300"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="doesFileExist" id="BPMNShape_doesFileExist"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="40" width="40" x="400" y="137"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="logFileExists" id="BPMNShape_logFileExists"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="55" width="105" x="550" y="130"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="checkForAFile2End" id="BPMNShape_checkForAFile2End"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="35" width="35" x="710" y="140"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="pause5Minutes" id="BPMNShape_pause5Minutes"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="35" width="35" x="215" y="310"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="checkFileExists" id="BPMNShape_checkFileExists"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="55" width="105" x="180" y="130"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="655" y="157"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="710" y="157"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="fileNotExist" id="BPMNEdge_fileNotExist"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="420" y="177"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="420" y="300"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow4" id="BPMNEdge_flow4"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="135" y="157"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="180" y="157"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="goToDecision" id="BPMNEdge_goToDecision"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="285" y="157"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="400" y="157"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow6" id="BPMNEdge_flow6"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="368" y="327"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="250" y="327"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow7" id="BPMNEdge_flow7"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="232" y="310"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="232" y="185"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="fileDoesExist" id="BPMNEdge_fileDoesExist"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="440" y="157"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="550" y="157"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNPlane&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;/bpmndi:BPMNDiagram&amp;gt;&lt;BR /&gt;&amp;lt;/definitions&amp;gt;&lt;BR /&gt;&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is the Service task Java Class:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt;package opt.argo.com;&lt;BR /&gt;&lt;BR /&gt;import java.io.File;&lt;BR /&gt;&lt;BR /&gt;public class CheckForFile2 implements JavaDelegate&lt;BR /&gt;{ &lt;BR /&gt; @Override &lt;BR /&gt; public void execute(DelegateExecution execution) throws Exception&lt;BR /&gt; {&lt;BR /&gt;&amp;nbsp; Calendar now = Calendar.getInstance();&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; System.out.println("CheckForFile2.execute() was called at "&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + now.getTime());&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; System.out.println("Current thread is " &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + Thread.currentThread().getName());&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; // May want to use the DelegateExecution object to provide the&lt;BR /&gt;&amp;nbsp; // file and path names.&amp;nbsp; For now, just put in values to test with.&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; String fileAndPathName = constructFileAndPathName();&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; boolean fileExists = false;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; fileExists = lookForFile(fileAndPathName);&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; System.out.println("In CheckForFile2.execute() set fileExists = "&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + fileExists + ".&amp;nbsp; Current thread is " &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + Thread.currentThread().getName());&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; execution.setVariable("fileExists", fileExists);&amp;nbsp; &lt;BR /&gt; &lt;BR /&gt; }&lt;BR /&gt; &lt;BR /&gt; private boolean lookForFile(String fileAndPathName)&lt;BR /&gt; {&lt;BR /&gt;&amp;nbsp; System.out.println("CheckForFile2.lookForFile() was called with "&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + "fileAndPathName = \"" + fileAndPathName + "\".");&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; boolean fileFound = false;&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; if(fileAndPathName != null &amp;amp;&amp;amp; fileAndPathName.length() &amp;gt; 0)&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; File aFile = new File(fileAndPathName);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; if(aFile.exists())&lt;BR /&gt;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fileFound = true;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; else&lt;BR /&gt;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fileFound = false;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; System.out.println("In CheckForFile2.lookForFile() set fileFound = "&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + fileFound);&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; return fileFound;&lt;BR /&gt; }&lt;BR /&gt; &lt;BR /&gt; private String constructFileAndPathName()&lt;BR /&gt; {&lt;BR /&gt;&amp;nbsp; String separator = new String();&lt;BR /&gt;&amp;nbsp; separator = System.getProperty("file.separator");&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; String theFilePath = new String("C:" + separator + "Users" + separator &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + "thomacha"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + separator + "DataFiles" + separator + "ForTest"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + separator);&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; String theFileName = new String("theFileToLookFor.txt");&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; String fileAndPathName = new String(theFilePath + theFileName);&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; return fileAndPathName;&lt;BR /&gt; }&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;/CODE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is the HIstory of the run&lt;/SPAN&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt;7535&amp;nbsp;&amp;nbsp;&amp;nbsp; CheckForAFile2:1:7532&amp;nbsp;&amp;nbsp;&amp;nbsp; 7534&amp;nbsp;&amp;nbsp;&amp;nbsp; 7534&amp;nbsp;&amp;nbsp;&amp;nbsp; checkFileExists&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Check File Exists&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; serviceTask&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2011-12-05 10:15:45.428&amp;nbsp;&amp;nbsp;&amp;nbsp; 2011-12-05 10:15:45.432&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&lt;BR /&gt;7537&amp;nbsp;&amp;nbsp;&amp;nbsp; CheckForAFile2:1:7532&amp;nbsp;&amp;nbsp;&amp;nbsp; 7534&amp;nbsp;&amp;nbsp;&amp;nbsp; 7534&amp;nbsp;&amp;nbsp;&amp;nbsp; doesFileExist&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Does File Exist&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exclusiveGateway&amp;nbsp;&amp;nbsp;&amp;nbsp; 2011-12-05 10:15:45.432&amp;nbsp;&amp;nbsp;&amp;nbsp; 2011-12-05 10:15:45.432&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;BR /&gt;7538&amp;nbsp;&amp;nbsp;&amp;nbsp; CheckForAFile2:1:7532&amp;nbsp;&amp;nbsp;&amp;nbsp; 7534&amp;nbsp;&amp;nbsp;&amp;nbsp; 7534&amp;nbsp;&amp;nbsp;&amp;nbsp; logNotExist&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Log That File Does Not Exist&amp;nbsp;&amp;nbsp;&amp;nbsp; scriptTask&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2011-12-05 10:15:45.432&amp;nbsp;&amp;nbsp;&amp;nbsp; 2011-12-05 10:15:45.495&amp;nbsp;&amp;nbsp;&amp;nbsp; 63&lt;BR /&gt;7542&amp;nbsp;&amp;nbsp;&amp;nbsp; CheckForAFile2:1:7532&amp;nbsp;&amp;nbsp;&amp;nbsp; 7534&amp;nbsp;&amp;nbsp;&amp;nbsp; 7534&amp;nbsp;&amp;nbsp;&amp;nbsp; checkFileExists&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Check File Exists&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; serviceTask&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2011-12-05 10:16:45.537&amp;nbsp;&amp;nbsp;&amp;nbsp; 2011-12-05 10:16:45.542&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&lt;BR /&gt;7543&amp;nbsp;&amp;nbsp;&amp;nbsp; CheckForAFile2:1:7532&amp;nbsp;&amp;nbsp;&amp;nbsp; 7534&amp;nbsp;&amp;nbsp;&amp;nbsp; 7534&amp;nbsp;&amp;nbsp;&amp;nbsp; doesFileExist&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Does File Exist&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exclusiveGateway&amp;nbsp;&amp;nbsp;&amp;nbsp; 2011-12-05 10:16:45.542&amp;nbsp;&amp;nbsp;&amp;nbsp; 2011-12-05 10:16:45.542&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;BR /&gt;7544&amp;nbsp;&amp;nbsp;&amp;nbsp; CheckForAFile2:1:7532&amp;nbsp;&amp;nbsp;&amp;nbsp; 7534&amp;nbsp;&amp;nbsp;&amp;nbsp; 7534&amp;nbsp;&amp;nbsp;&amp;nbsp; logNotExist&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Log That File Does Not Exist&amp;nbsp;&amp;nbsp; scriptTask&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2011-12-05 10:16:45.542&amp;nbsp;&amp;nbsp;&amp;nbsp; 2011-12-05 10:16:45.57&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 28&lt;BR /&gt;&lt;BR /&gt;&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;Then the exception is thrown.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is the log file with the Stack Trace:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt;CheckForFile2.execute() was called at Mon Dec 05 10:15:45 CST 2011&lt;BR /&gt;Current thread is http-8080-4&lt;BR /&gt;CheckForFile2.lookForFile() was called with fileAndPathName = "C:\Users\thomacha\DataFiles\ForTest\t&lt;BR /&gt;heFileToLookFor.txt".&lt;BR /&gt;In CheckForFile2.lookForFile() set fileFound = false&lt;BR /&gt;In CheckForFile2.execute() set fileExists = false.&amp;nbsp; Current thread is http-8080-4&lt;BR /&gt;In CheckForAFile2 Process:&amp;nbsp; File does NOT Exist… going to wait.&amp;nbsp; Mon Dec 05 10:15:45 CST 2011&lt;BR /&gt;&lt;BR /&gt;CheckForFile2.execute() was called at Mon Dec 05 10:16:45 CST 2011&lt;BR /&gt;Current thread is pool-1-thread-1&lt;BR /&gt;CheckForFile2.lookForFile() was called with fileAndPathName = "C:\Users\thomacha\DataFiles\ForTest\t&lt;BR /&gt;heFileToLookFor.txt".&lt;BR /&gt;In CheckForFile2.lookForFile() set fileFound = false&lt;BR /&gt;In CheckForFile2.execute() set fileExists = false.&amp;nbsp; Current thread is pool-1-thread-1&lt;BR /&gt;In CheckForAFile2 Process:&amp;nbsp; File does NOT Exist… going to wait.&amp;nbsp; Mon Dec 05 10:16:45 CST 2011&lt;BR /&gt;&lt;BR /&gt;Dec 5, 2011 10:17:45 AM org.activiti.engine.impl.interceptor.CommandContext close&lt;BR /&gt;SEVERE: Error while closing command context&lt;BR /&gt;org.activiti.engine.ActivitiOptimisticLockingException: TimerEntity[7546] was updated by another tra&lt;BR /&gt;nsaction concurrently&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.db.DbSqlSession.flushUpdates(DbSqlSession.java:435)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.db.DbSqlSession.flush(DbSqlSession.java:348)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.CommandContext.flushSessions(CommandContext.java:147&lt;BR /&gt;)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.CommandContext.close(CommandContext.java:103)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInte&lt;BR /&gt;rceptor.java:49)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInter&lt;BR /&gt;ceptor.java:42)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.j&lt;BR /&gt;ava:130)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.jav&lt;BR /&gt;a:40)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.jobexecutor.JobAcquisitionThread.run(JobAcquisitionThread.java:6&lt;BR /&gt;3)&lt;BR /&gt;Dec 5, 2011 10:17:45 AM org.activiti.engine.impl.jobexecutor.JobAcquisitionThread run&lt;BR /&gt;SEVERE: exception during job acquisition: TimerEntity[7546] was updated by another transaction concu&lt;BR /&gt;rrently&lt;BR /&gt;org.activiti.engine.ActivitiOptimisticLockingException: TimerEntity[7546] was updated by another tra&lt;BR /&gt;nsaction concurrently&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.db.DbSqlSession.flushUpdates(DbSqlSession.java:435)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.db.DbSqlSession.flush(DbSqlSession.java:348)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.CommandContext.flushSessions(CommandContext.java:147&lt;BR /&gt;)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.CommandContext.close(CommandContext.java:103)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInte&lt;BR /&gt;rceptor.java:49)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInter&lt;BR /&gt;ceptor.java:42)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.j&lt;BR /&gt;ava:130)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.jav&lt;BR /&gt;a:40)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.jobexecutor.JobAcquisitionThread.run(JobAcquisitionThread.java:6&lt;BR /&gt;3)&lt;BR /&gt;Dec 5, 2011 10:17:45 AM org.activiti.engine.impl.bpmn.deployer.BpmnDeployer deploy&lt;BR /&gt;INFO: Processing resource RenameAFile.bpmn20.xml&lt;BR /&gt;Dec 5, 2011 10:17:45 AM org.activiti.engine.impl.bpmn.parser.BpmnParse parseDefinitionsAttributes&lt;BR /&gt;INFO: XMLSchema currently not supported as typeLanguage&lt;BR /&gt;Dec 5, 2011 10:17:45 AM org.activiti.engine.impl.bpmn.parser.BpmnParse parseDefinitionsAttributes&lt;BR /&gt;INFO: XPath currently not supported as expressionLanguage&lt;BR /&gt;Dec 5, 2011 10:17:45 AM org.activiti.engine.impl.bpmn.deployer.BpmnDeployer deploy&lt;BR /&gt;INFO: Processing resource FileCheckTesterProcess.bpmn20.xml&lt;BR /&gt;Dec 5, 2011 10:17:45 AM org.activiti.engine.impl.bpmn.parser.BpmnParse parseDefinitionsAttributes&lt;BR /&gt;INFO: XMLSchema currently not supported as typeLanguage&lt;BR /&gt;Dec 5, 2011 10:17:45 AM org.activiti.engine.impl.bpmn.parser.BpmnParse parseDefinitionsAttributes&lt;BR /&gt;INFO: XPath currently not supported as expressionLanguage&lt;BR /&gt;Dec 5, 2011 10:17:45 AM org.activiti.engine.impl.bpmn.deployer.BpmnDeployer deploy&lt;BR /&gt;INFO: Processing resource RenameAFile.png&lt;BR /&gt;Dec 5, 2011 10:17:45 AM org.activiti.engine.impl.bpmn.deployer.BpmnDeployer deploy&lt;BR /&gt;INFO: Processing resource CheckForAFile2.bpmn20.xml&lt;BR /&gt;Dec 5, 2011 10:17:45 AM org.activiti.engine.impl.bpmn.parser.BpmnParse parseDefinitionsAttributes&lt;BR /&gt;INFO: XMLSchema currently not supported as typeLanguage&lt;BR /&gt;Dec 5, 2011 10:17:45 AM org.activiti.engine.impl.bpmn.parser.BpmnParse parseDefinitionsAttributes&lt;BR /&gt;INFO: XPath currently not supported as expressionLanguage&lt;BR /&gt;Dec 5, 2011 10:17:45 AM org.activiti.engine.impl.bpmn.deployer.BpmnDeployer deploy&lt;BR /&gt;INFO: Processing resource CheckForAFile2.png&lt;BR /&gt;Dec 5, 2011 10:17:45 AM org.activiti.engine.impl.bpmn.deployer.BpmnDeployer deploy&lt;BR /&gt;INFO: Processing resource CheckForAFile.bpmn20.xml&lt;BR /&gt;Dec 5, 2011 10:17:45 AM org.activiti.engine.impl.bpmn.parser.BpmnParse parseDefinitionsAttributes&lt;BR /&gt;INFO: XMLSchema currently not supported as typeLanguage&lt;BR /&gt;Dec 5, 2011 10:17:45 AM org.activiti.engine.impl.bpmn.parser.BpmnParse parseDefinitionsAttributes&lt;BR /&gt;INFO: XPath currently not supported as expressionLanguage&lt;BR /&gt;Dec 5, 2011 10:17:45 AM org.activiti.engine.impl.bpmn.deployer.BpmnDeployer deploy&lt;BR /&gt;INFO: Processing resource FileCheckTesterProcess.png&lt;BR /&gt;Dec 5, 2011 10:17:45 AM org.activiti.engine.impl.bpmn.deployer.BpmnDeployer deploy&lt;BR /&gt;INFO: Processing resource CheckForAFile.png&lt;BR /&gt;Dec 5, 2011 10:17:45 AM org.activiti.engine.impl.jobexecutor.TimerCatchIntermediateEventJobHandler e&lt;BR /&gt;xecute&lt;BR /&gt;SEVERE: exception during timer execution&lt;BR /&gt;org.activiti.engine.ActivitiException: couldn't instantiate class opt.argo.com.CheckForFile2&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.util.ReflectUtil.instantiate(ReflectUtil.java:131)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.bpmn.helper.ClassDelegate.instantiateDelegate(ClassDelegate.java&lt;BR /&gt;:156)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.bpmn.helper.ClassDelegate.getActivityBehaviorInstance(ClassDeleg&lt;BR /&gt;ate.java:129)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.bpmn.helper.ClassDelegate.execute(ClassDelegate.java:110)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.pvm.runtime.AtomicOperationActivityExecute.execute(AtomicOperati&lt;BR /&gt;onActivityExecute.java:44)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:&lt;BR /&gt;76)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(Executio&lt;BR /&gt;nEntity.java:497)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEnt&lt;BR /&gt;ity.java:492)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionNotifyListenerStart.eventNo&lt;BR /&gt;tificationsCompleted(AtomicOperationTransitionNotifyListenerStart.java:52)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAt&lt;BR /&gt;omicOperation.java:56)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:&lt;BR /&gt;76)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(Executio&lt;BR /&gt;nEntity.java:497)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEnt&lt;BR /&gt;ity.java:492)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAt&lt;BR /&gt;omicOperation.java:49)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:&lt;BR /&gt;76)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(Executio&lt;BR /&gt;nEntity.java:497)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEnt&lt;BR /&gt;ity.java:492)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionCreateScope.execute(AtomicO&lt;BR /&gt;perationTransitionCreateScope.java:49)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:&lt;BR /&gt;76)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(Executio&lt;BR /&gt;nEntity.java:497)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEnt&lt;BR /&gt;ity.java:492)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionNotifyListenerTake.execute(&lt;BR /&gt;AtomicOperationTransitionNotifyListenerTake.java:65)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:&lt;BR /&gt;76)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(Executio&lt;BR /&gt;nEntity.java:497)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEnt&lt;BR /&gt;ity.java:492)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionDestroyScope.execute(Atomic&lt;BR /&gt;OperationTransitionDestroyScope.java:115)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:&lt;BR /&gt;76)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(Executio&lt;BR /&gt;nEntity.java:497)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEnt&lt;BR /&gt;ity.java:492)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionNotifyListenerEnd.eventNoti&lt;BR /&gt;ficationsCompleted(AtomicOperationTransitionNotifyListenerEnd.java:36)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAt&lt;BR /&gt;omicOperation.java:56)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:&lt;BR /&gt;76)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(Executio&lt;BR /&gt;nEntity.java:497)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEnt&lt;BR /&gt;ity.java:492)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.persistence.entity.ExecutionEntity.take(ExecutionEntity.java:332&lt;BR /&gt;)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.bpmn.behavior.BpmnActivityBehavior.performOutgoingBehavior(BpmnA&lt;BR /&gt;ctivityBehavior.java:102)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.bpmn.behavior.BpmnActivityBehavior.performDefaultOutgoingBehavio&lt;BR /&gt;r(BpmnActivityBehavior.java:51)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.bpmn.behavior.FlowNodeActivityBehavior.leave(FlowNodeActivityBeh&lt;BR /&gt;avior.java:44)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.bpmn.behavior.AbstractBpmnActivityBehavior.leave(AbstractBpmnAct&lt;BR /&gt;ivityBehavior.java:37)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.bpmn.behavior.IntermediateCatchEventActivitiBehaviour.signal(Int&lt;BR /&gt;ermediateCatchEventActivitiBehaviour.java:27)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.jobexecutor.TimerCatchIntermediateEventJobHandler.execute(TimerC&lt;BR /&gt;atchIntermediateEventJobHandler.java:43)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.persistence.entity.JobEntity.execute(JobEntity.java:78)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.persistence.entity.TimerEntity.execute(TimerEntity.java:62)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.cmd.ExecuteJobsCmd.execute(ExecuteJobsCmd.java:61)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java&lt;BR /&gt;:24)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInte&lt;BR /&gt;rceptor.java:42)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.jobexecutor.ExecuteJobsRunnable.run(ExecuteJobsRunnable.java:36)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.lang.Thread.run(Thread.java:662)&lt;BR /&gt;Caused by: org.activiti.engine.ActivitiClassLoadingException: Class not found: opt.argo.com.CheckFor&lt;BR /&gt;File2&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.util.ReflectUtil.loadClass(ReflectUtil.java:81)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.util.ReflectUtil.instantiate(ReflectUtil.java:128)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; … 50 more&lt;BR /&gt;Caused by: java.lang.ClassNotFoundException: opt.argo.com.CheckForFile2&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.lang.Class.forName0(Native Method)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.lang.Class.forName(Class.java:247)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.util.ReflectUtil.loadClass(ReflectUtil.java:62)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; … 51 more&lt;BR /&gt;&lt;BR /&gt;&lt;/CODE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Dec 2011 18:14:37 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/timerentity-was-updated-by-another-transaction-concurrently/m-p/65793#M41697</guid>
      <dc:creator>ct1</dc:creator>
      <dc:date>2011-12-05T18:14:37Z</dc:date>
    </item>
    <item>
      <title>Re: TimerEntity was updated by another transaction concurrently</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/timerentity-was-updated-by-another-transaction-concurrently/m-p/65794#M41698</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I think the problem is that you execute a couple of automatic tasks after running the intermediate timer event and then execute another intermediate timer event.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;This means that when the first intermediate timer event is executed, the automatic tasks are executed and another intermediate timer event is started.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Maybe this use case is better suited for a framework like Apache Camel or Mule. These frameworks can poll for files.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If you want you can then start an Activiti process, because we provide Camel and Mule modules for Activiti.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Best regards,&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 Dec 2011 19:05:30 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/timerentity-was-updated-by-another-transaction-concurrently/m-p/65794#M41698</guid>
      <dc:creator>trademak</dc:creator>
      <dc:date>2011-12-06T19:05:30Z</dc:date>
    </item>
  </channel>
</rss>

