<?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 Compensation action is not executed in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/compensation-action-is-not-executed/m-p/173377#M126525</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I've got a scheduled composite action that runs on all files in a specific folder every minute. This is an upload folder, and the incoming files should be processed and moved accordingly.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;This is my composite action:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bean id="compositeAction" class="org.alfresco.repo.action.scheduled.CompositeTemplateActionDefinition"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name="actionService"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ref bean="ActionService"/&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name="templateService"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ref bean="TemplateService"/&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name="templateActionDefinitions"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;list&amp;gt;&lt;BR /&gt;&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;lt;ref bean="cayman_guess-mimetypeScheduledAction" /&amp;gt;&lt;BR /&gt;&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;lt;ref bean="cayman_addHashableAspectScheduledAction" /&amp;gt;&lt;BR /&gt;&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;lt;ref bean="cayman_calculate-contenthashScheduledAction" /&amp;gt;&lt;BR /&gt;&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;lt;ref bean="cayman_extract-languageScheduledAction"/&amp;gt;&lt;BR /&gt;&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;lt;ref bean="cayman_match-versionScheduledAction"/&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/list&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name="compensatingTemplateCompositeActionDefinition"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ref bean="cayman_failed-match-versionScheduledAction"/&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bean&amp;gt;&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;SPAN&gt;The last action in the list moves the node to a different folder. However, if one of the actions (most importantly the last) fails, I want to node to be moved to a "failed" folder, for human inspection. This is what the &lt;/SPAN&gt;&lt;EM&gt;cayman_failed-match-versionScheduledAction&lt;/EM&gt;&lt;SPAN&gt; action does.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;My CronScheduledQueryBasedTemplateActionDefinition has transactionMode set to ISOLATED_TRANSACTIONS and compensatingActionMode set to RUN_COMPENSATING_ACTIONS_ON_FAILURE.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Now, when (in the last of the composite actions) I for example get an iterator from an ResultSet, and try to do i.remove(), I get this in my log:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;10:59:04,238 ERROR [org.alfresco.repo.action.scheduled.AbstractScheduledAction] Error in scheduled action executed in isolated transactions (other actions will continue&lt;BR /&gt;java.lang.ClassCastException: java.lang.UnsupportedOperationException cannot be cast to org.alfresco.repo.action.scheduled.CompensatingActionException&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.alfresco.repo.action.scheduled.AbstractScheduledAction$JobDefinition$1.doCompensation(AbstractScheduledAction.java:529)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.alfresco.repo.action.scheduled.AbstractScheduledAction$JobDefinition$1.runTransactionalAction(AbstractScheduledAction.java:599)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.alfresco.repo.action.scheduled.AbstractScheduledAction$JobDefinition$1.doWork(AbstractScheduledAction.java:432)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.alfresco.repo.security.authentication.AuthenticationUtil.runAs(AuthenticationUtil.java:299)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.alfresco.repo.action.scheduled.AbstractScheduledAction$JobDefinition.execute(AbstractScheduledAction.java:398)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.quartz.core.JobRunShell.run(JobRunShell.java:202)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;The UnsupportedOperationException makes sence, but I think casting the thrown exception to CompensatingActionException isn't logical. Maybe the exception should be caught, and a new CompensatingActionException exception should be thrown.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I think the "(other actions will continue" statement means that the composite action will still be run on the other nodes in the folder (which is correct according to the ISOLATED_TRANSACTIONS setting).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;But the main problem is: my compensating action is never run! &lt;/STRONG&gt;&lt;SPAN&gt;Allthough I think it should, since one of the composite actions threw an exception. For me, this means that the node remains in the incoming folder, and the composite action is run on this node every minute, failing every time.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;On the side, I think there is either an error in the code, or an error in the Wiki documentation:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The &lt;/SPAN&gt;&lt;EM&gt;AbstractTemplateActionDefinition &lt;/EM&gt;&lt;SPAN&gt;class has a field &lt;/SPAN&gt;&lt;EM&gt;compensatingTemplateActionDefinition&lt;/EM&gt;&lt;SPAN&gt; but it's setters and getters are &lt;/SPAN&gt;&lt;EM&gt;*CompensatingTemplate&lt;STRONG&gt;Composite&lt;/STRONG&gt;ActionDefinition&lt;/EM&gt;&lt;SPAN&gt;. No field &lt;/SPAN&gt;&lt;EM&gt;compensatingTemplate&lt;STRONG&gt;Composite&lt;/STRONG&gt;ActionDefinition&lt;/EM&gt;&lt;SPAN&gt; exists in any of the repo.action.scheduled.* classes.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;However, the &lt;/SPAN&gt;&lt;A href="http://wiki.alfresco.com/wiki/Scheduled_Actions#Available_options_for_SimpleTemplateActionDefinition" rel="nofollow noopener noreferrer"&gt;Wiki&lt;/A&gt;&lt;SPAN&gt; mentions a field &lt;/SPAN&gt;&lt;EM&gt;compensatingTemplateActionDefinition&lt;/EM&gt;&lt;SPAN&gt; for both the SimpleTemplateActionDefinition and CompositeTemplateActionDefinition (which is in fact correct) with of course the implicit setters and getters &lt;/SPAN&gt;&lt;EM&gt;*compensatingTemplateActionDefinition &lt;/EM&gt;&lt;SPAN&gt; used by the beans (which is incorrect).&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 04 Mar 2008 10:27:21 GMT</pubDate>
    <dc:creator>stijndereede</dc:creator>
    <dc:date>2008-03-04T10:27:21Z</dc:date>
    <item>
      <title>Compensation action is not executed</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/compensation-action-is-not-executed/m-p/173377#M126525</link>
      <description>I've got a scheduled composite action that runs on all files in a specific folder every minute. This is an upload folder, and the incoming files should be processed and moved accordingly.This is my composite action:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bean id="compositeAction" class="org.alfresco.repo.action.scheduled.Composite</description>
      <pubDate>Tue, 04 Mar 2008 10:27:21 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/compensation-action-is-not-executed/m-p/173377#M126525</guid>
      <dc:creator>stijndereede</dc:creator>
      <dc:date>2008-03-04T10:27:21Z</dc:date>
    </item>
    <item>
      <title>Re: Compensation action is not executed</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/compensation-action-is-not-executed/m-p/173378#M126526</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;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In my case the transaction mode is set to ONE_TRANSACTION whit a SimpleTemplateActionDefinition as main action (running a script action ). &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If the script fails the compensatiingAction doesn't fire and in the logs :&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt; ERROR [quartz.core.JobRunShell] Job jobGroup.jobArchivadoFacturas threw an unhandled Exception: &lt;BR /&gt;java.lang.ClassCastException: org.alfresco.service.cmr.repository.ScriptException&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.alfresco.repo.action.scheduled.AbstractScheduledAction$JobDefinition$1.doCompensation(AbstractScheduledAction.java:529)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.alfresco.repo.action.scheduled.AbstractScheduledAction$JobDefinition$1.runTransactionalActions(AbstractScheduledAction.java:511)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.alfresco.repo.action.scheduled.AbstractScheduledAction$JobDefinition$1.doWork(AbstractScheduledAction.java:416)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.alfresco.repo.security.authentication.AuthenticationUtil.runAs(AuthenticationUtil.java:269)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.alfresco.repo.action.scheduled.AbstractScheduledAction$JobDefinition.execute(AbstractScheduledAction.java:398)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.quartz.core.JobRunShell.run(JobRunShell.java:202)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)&lt;BR /&gt;10:12:00,058 ERROR [quartz.core.ErrorLogger] Job (jobGroup.jobArchivadoFacturas threw an exception.&lt;BR /&gt;org.quartz.SchedulerException: Job threw an unhandled exception. [See nested exception: java.lang.ClassCastException: org.alfresco.service.cmr.repository.ScriptException]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.quartz.core.JobRunShell.run(JobRunShell.java:213)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)&lt;BR /&gt;Caused by: java.lang.ClassCastException: org.alfresco.service.cmr.repository.ScriptException&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.alfresco.repo.action.scheduled.AbstractScheduledAction$JobDefinition$1.doCompensation(AbstractScheduledAction.java:529)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.alfresco.repo.action.scheduled.AbstractScheduledAction$JobDefinition$1.runTransactionalActions(AbstractScheduledAction.java:511)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.alfresco.repo.action.scheduled.AbstractScheduledAction$JobDefinition$1.doWork(AbstractScheduledAction.java:416)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.alfresco.repo.security.authentication.AuthenticationUtil.runAs(AuthenticationUtil.java:269)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.alfresco.repo.action.scheduled.AbstractScheduledAction$JobDefinition.execute(AbstractScheduledAction.java:398)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.quartz.core.JobRunShell.run(JobRunShell.java:202)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;… 1 more&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;It's an issue &lt;/SPAN&gt;&lt;A href="https://issues.alfresco.com/jira/browse/ETHREEOH-399" rel="nofollow noopener noreferrer"&gt;https://issues.alfresco.com/jira/browse/ETHREEOH-399&lt;/A&gt;&lt;SPAN&gt; not closed because it's not verified in Entrerprise 3.0 ; I'm running Enterprise 2.2 ¿Does anybody know if it's solved in any new release?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 28 Oct 2008 09:24:52 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/compensation-action-is-not-executed/m-p/173378#M126526</guid>
      <dc:creator>togomez</dc:creator>
      <dc:date>2008-10-28T09:24:52Z</dc:date>
    </item>
  </channel>
</rss>

