<?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 ErrorEndEvent is not propagated to parent process in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/errorendevent-is-not-propagated-to-parent-process/m-p/167456#M120979</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;We have two processes, A and B, where B is a sub-process of A.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In the parent process A, we have an Event Sub-Process with an ErrorStartEvent with Error Code "customError".&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In process B, we also have an Event Sub-Process with an ErrorStartEvent with Error Code "customError", but at the end, we re-throw this same error code with an ErrorEndEvent, in order to trigger the Event Sub-Process of the parent process A.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This, however, produces an infinite loop. In other words, instead of propagating the ErrorEndEvent from process B to the parent process A, it keeps processing the error in process B. Making an analogy with Java, what we have is the following:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-java line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;A() { // Parent Process&lt;BR /&gt;&amp;nbsp; try {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; B();&amp;nbsp; // Sub Process&lt;BR /&gt;&amp;nbsp; } catch (CustomError e) {&amp;nbsp; // Event Sub Process ErrorStartEvent&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; doSomething();&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;B() {&lt;BR /&gt;&amp;nbsp; try {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; doSomethingElse();&lt;BR /&gt;&amp;nbsp; } catch (CustomError e) { // Event Sub Process ErrorStartEvent&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; doYetSomething();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw e; // This ErrorEndEvent is never caught by A&lt;BR /&gt;&amp;nbsp; }&lt;BR /&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;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;However, the Exception from B never reaches A, it keeps looping in the catch block of B.&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 27 Feb 2014 18:33:47 GMT</pubDate>
    <dc:creator>joao_p_silva</dc:creator>
    <dc:date>2014-02-27T18:33:47Z</dc:date>
    <item>
      <title>ErrorEndEvent is not propagated to parent process</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/errorendevent-is-not-propagated-to-parent-process/m-p/167456#M120979</link>
      <description>We have two processes, A and B, where B is a sub-process of A.In the parent process A, we have an Event Sub-Process with an ErrorStartEvent with Error Code "customError".In process B, we also have an Event Sub-Process with an ErrorStartEvent with Error Code "customError", but at the end, we re-throw</description>
      <pubDate>Thu, 27 Feb 2014 18:33:47 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/errorendevent-is-not-propagated-to-parent-process/m-p/167456#M120979</guid>
      <dc:creator>joao_p_silva</dc:creator>
      <dc:date>2014-02-27T18:33:47Z</dc:date>
    </item>
    <item>
      <title>Re: ErrorEndEvent is not propagated to parent process</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/errorendevent-is-not-propagated-to-parent-process/m-p/167457#M120980</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;As I&amp;nbsp; understand error is caught in subprocess B in the event sub-subprocess.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I can&amp;nbsp; be sure only when I write jUnit test, but what could happen is following:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt;&amp;nbsp; public static void propagateError(String errorCode, ActivityExecution execution) throws Exception {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // find local error handler&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; String eventHandlerId = findLocalErrorEventHandler(execution, errorCode);&amp;nbsp; &lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // TODO: merge two approaches (super process / regular process approach)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(eventHandlerId != null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; executeCatch(eventHandlerId, execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }else {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ActivityExecution superExecution = getSuperExecution(execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (superExecution != null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; executeCatchInSuperProcess(errorCode, superExecution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOG.info("{} throws error event with errorCode '{}', but no catching boundary event was defined. Execution will simply be ended (none end event semantics).",&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; execution.getActivity().getId(), errorCode);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; execution.end();&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; }&lt;BR /&gt;&lt;/CODE&gt;&lt;BR /&gt;&lt;CODE&gt;org.activiti.engine.impl.bpmn.helper.ErrorPropagation#findLocalErrorEventHandler&lt;/CODE&gt;&lt;SPAN&gt; finds current event subprocess and that's why it ends in endless loop. Your case can be solved by changing error code.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The question is whether it is correct behavior or not.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Martin&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 Feb 2014 07:35:49 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/errorendevent-is-not-propagated-to-parent-process/m-p/167457#M120980</guid>
      <dc:creator>martin_grofcik</dc:creator>
      <dc:date>2014-02-28T07:35:49Z</dc:date>
    </item>
    <item>
      <title>Re: ErrorEndEvent is not propagated to parent process</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/errorendevent-is-not-propagated-to-parent-process/m-p/167458#M120981</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Martin, thank you for your prompt feedback.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;According to the documentation of an Error End Event:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;When process execution arrives in an error end event, the current path of execution is ended and an error is thrown.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt;My interpretation of this sentence is that the current event subprocess is the current path of execution, and therefore, should be ended, with the error being thrown to the parent process (not back to itself). In other words, an end event should always end the current path of execution.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 Feb 2014 10:20:10 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/errorendevent-is-not-propagated-to-parent-process/m-p/167458#M120981</guid>
      <dc:creator>joao_p_silva</dc:creator>
      <dc:date>2014-02-28T10:20:10Z</dc:date>
    </item>
    <item>
      <title>Re: ErrorEndEvent is not propagated to parent process</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/errorendevent-is-not-propagated-to-parent-process/m-p/167459#M120982</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;When you mean sub process is it a separate process definition invoked with a call activity? Or is it part of the same process definition?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Could you create a unit test and a JIRA issue?&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, 01 Mar 2014 07:49:08 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/errorendevent-is-not-propagated-to-parent-process/m-p/167459#M120982</guid>
      <dc:creator>trademak</dc:creator>
      <dc:date>2014-03-01T07:49:08Z</dc:date>
    </item>
    <item>
      <title>Re: ErrorEndEvent is not propagated to parent process</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/errorendevent-is-not-propagated-to-parent-process/m-p/167460#M120983</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;Yes, indeed, it's a separate process invoked with a call activity. I've created the following JIRA: &lt;/SPAN&gt;&lt;A href="http://jira.codehaus.org/browse/ACT-1937" rel="nofollow noopener noreferrer"&gt;http://jira.codehaus.org/browse/ACT-1937&lt;/A&gt;&lt;SPAN&gt;, which contains a failing unit test of the issue. Please let me know if you need something else.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Best regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;João&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Mar 2014 14:39:36 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/errorendevent-is-not-propagated-to-parent-process/m-p/167460#M120983</guid>
      <dc:creator>joao_p_silva</dc:creator>
      <dc:date>2014-03-03T14:39:36Z</dc:date>
    </item>
  </channel>
</rss>

