[MAGNOLIA-1677] Workflow IllegalAgrumentException during execution of workflow + Infinite activation loop Created: 10/Aug/07  Updated: 23/Jan/13  Resolved: 06/Aug/08

Status: Closed
Project: Magnolia
Component/s: workflow
Affects Version/s: 3.0.2
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Thomas Madej Assignee: Jan Haderka
Resolution: Outdated Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Solaris 10, base Tomcat/Magnolia bundle


Template:
Acceptance criteria:
Empty
Task DoD:
[ ]* Doc/release notes changes? Comment present?
[ ]* Downstream builds green?
[ ]* Solution information and context easily available?
[ ]* Tests
[ ]* FixVersion filled and not yet released
[ ]  Architecture Decision Record (ADR)
Bug DoR:
[ ]* Steps to reproduce, expected, and actual results filled
[ ]* Affected version filled
Date of First Response:

 Description   

After activation of content, I recieve the following error in catalina.out along with looping activation of the same content (possible jcr corruption?). I did modify my my workflow to automatically activate by modifying the workflow document and removing the alert node from the /modules/adminInterface/activation/ .

WARN openwfe.org.engine.workitem.AttributeUtils AttributeUtils.java(smap2bean:172) 09.08.2007 22:13:42 smap2bean() bean of class 'info.magnolia.cms.exchange.ExchangeException' : failed to set value for field 'StackTrace'. Skipped field.
WARN openwfe.org.engine.workitem.AttributeUtils AttributeUtils.java(smap2bean:177) 09.08.2007 22:13:42 because of
java.lang.IllegalArgumentException: array element type mismatch
at java.lang.reflect.Array.set(Native Method)
at openwfe.org.engine.workitem.AttributeUtils.toArray(AttributeUtils.java:200)
at openwfe.org.engine.workitem.AttributeUtils.smap2bean(AttributeUtils.java:160)
at openwfe.org.engine.workitem.AttributeUtils.owfe2java(AttributeUtils.java:105)
at info.magnolia.module.workflow.WorkItemContext.getAttribute(WorkItemContext.java:58)
at info.magnolia.cms.util.AlertUtil.isExceptionSet(AlertUtil.java:109)
at info.magnolia.cms.util.AlertUtil.setException(AlertUtil.java:93)
at info.magnolia.cms.util.AlertUtil.setException(AlertUtil.java:68)
at info.magnolia.module.admininterface.commands.ActivationCommand.execute(ActivationCommand.java:88)
at info.magnolia.commands.MgnlCommand.executePooledOrSynchronized(MgnlCommand.java:141)
at info.magnolia.commands.MgnlCommand.execute(MgnlCommand.java:128)
at info.magnolia.module.workflow.MgnlParticipant.consume(MgnlParticipant.java:116)
at openwfe.org.embed.impl.engine.AbstractEmbeddedParticipant.dispatch(AbstractEmbeddedParticipant.java:154)
at openwfe.org.engine.expressions.ParticipantExpression.dispatch(ParticipantExpression.java:474)
at openwfe.org.engine.expressions.ParticipantExpression.regularDispatch(ParticipantExpression.java:489)
at openwfe.org.engine.expressions.ParticipantExpression.apply(ParticipantExpression.java:430)
at openwfe.org.engine.expressions.raw.RawExpression.apply(RawExpression.java:371)
at openwfe.org.engine.expressions.state.NormalState.apply(NormalState.java:112)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.applyOrLaunch(SimpleExpressionPool.java:529)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.apply(SimpleExpressionPool.java:542)
at openwfe.org.engine.expressions.SequentialFlowExpression.apply(SequentialFlowExpression.java:140)
at openwfe.org.engine.expressions.state.NormalState.apply(NormalState.java:112)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.applyOrLaunch(SimpleExpressionPool.java:529)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.apply(SimpleExpressionPool.java:542)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.apply(SimpleExpressionPool.java:554)
at openwfe.org.engine.expressions.SequenceExpression.reply(SequenceExpression.java:130)
at openwfe.org.engine.expressions.state.NormalState.reply(NormalState.java:118)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.reply(SimpleExpressionPool.java:713)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.replyToParent(SimpleExpressionPool.java:644)
at openwfe.org.engine.expressions.AbstractFlowExpression.replyToParent(AbstractFlowExpression.java:479)
at openwfe.org.engine.expressions.IfExpression.applyConsequence(IfExpression.java:260)
at openwfe.org.engine.expressions.IfExpression.reply(IfExpression.java:189)
at openwfe.org.engine.expressions.state.NormalState.reply(NormalState.java:118)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.reply(SimpleExpressionPool.java:713)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.replyToParent(SimpleExpressionPool.java:644)
at openwfe.org.engine.expressions.AbstractFlowExpression.replyToParent(AbstractFlowExpression.java:479)
at openwfe.org.engine.expressions.AbstractFlowExpression.applyToParent(AbstractFlowExpression.java:494)
at openwfe.org.engine.expressions.DefinedExpression.apply(DefinedExpression.java:97)
at openwfe.org.engine.expressions.raw.RawExpression.apply(RawExpression.java:371)
at openwfe.org.engine.expressions.state.NormalState.apply(NormalState.java:112)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.applyOrLaunch(SimpleExpressionPool.java:529)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.apply(SimpleExpressionPool.java:542)
at openwfe.org.engine.expressions.IfExpression.apply(IfExpression.java:128)
at openwfe.org.engine.expressions.raw.RawExpression.apply(RawExpression.java:371)
at openwfe.org.engine.expressions.state.NormalState.apply(NormalState.java:112)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.applyOrLaunch(SimpleExpressionPool.java:529)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.apply(SimpleExpressionPool.java:542)
at openwfe.org.engine.expressions.SequentialFlowExpression.apply(SequentialFlowExpression.java:140)
at openwfe.org.engine.expressions.AbstractFlowExpression.launch(AbstractFlowExpression.java:163)
at openwfe.org.engine.expressions.raw.RawExpression.launch(RawExpression.java:383)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.applyOrLaunch(SimpleExpressionPool.java:527)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.launch(SimpleExpressionPool.java:565)
at openwfe.org.engine.impl.launch.SimpleXmlLauncher$1.run(SimpleXmlLauncher.java:453)

I also find this issue in the logs during the process:

ERROR info.magnolia.module.admininterface.commands.ActivationCommand ActivationCommand.java(execute:87) 09.08.2007 22:06:46 can't activate
info.magnolia.cms.exchange.ExchangeException: Message received from subscriber: : Message received from subscriber:
at info.magnolia.cms.exchange.simple.BaseSyndicatorImpl.activate(BaseSyndicatorImpl.java:255)
at info.magnolia.module.admininterface.commands.ActivationCommand.activateRecursive(ActivationCommand.java:150)
at info.magnolia.module.admininterface.commands.ActivationCommand.execute(ActivationCommand.java:71)
at info.magnolia.commands.MgnlCommand.executePooledOrSynchronized(MgnlCommand.java:141)
at info.magnolia.commands.MgnlCommand.execute(MgnlCommand.java:128)
at info.magnolia.module.workflow.MgnlParticipant.consume(MgnlParticipant.java:116)
at openwfe.org.embed.impl.engine.AbstractEmbeddedParticipant.dispatch(AbstractEmbeddedParticipant.java:154)
at openwfe.org.engine.expressions.ParticipantExpression.dispatch(ParticipantExpression.java:474)
at openwfe.org.engine.expressions.ParticipantExpression.regularDispatch(ParticipantExpression.java:489)
at openwfe.org.engine.expressions.ParticipantExpression.apply(ParticipantExpression.java:430)
at openwfe.org.engine.expressions.raw.RawExpression.apply(RawExpression.java:371)
at openwfe.org.engine.expressions.state.NormalState.apply(NormalState.java:112)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.applyOrLaunch(SimpleExpressionPool.java:529)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.apply(SimpleExpressionPool.java:542)
at openwfe.org.engine.expressions.SequentialFlowExpression.apply(SequentialFlowExpression.java:140)
at openwfe.org.engine.expressions.state.NormalState.apply(NormalState.java:112)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.applyOrLaunch(SimpleExpressionPool.java:529)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.apply(SimpleExpressionPool.java:542)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.apply(SimpleExpressionPool.java:554)
at openwfe.org.engine.expressions.SequenceExpression.reply(SequenceExpression.java:130)
at openwfe.org.engine.expressions.state.NormalState.reply(NormalState.java:118)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.reply(SimpleExpressionPool.java:713)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.replyToParent(SimpleExpressionPool.java:644)
at openwfe.org.engine.expressions.AbstractFlowExpression.replyToParent(AbstractFlowExpression.java:479)
at openwfe.org.engine.expressions.IfExpression.applyConsequence(IfExpression.java:260)
at openwfe.org.engine.expressions.IfExpression.reply(IfExpression.java:189)
at openwfe.org.engine.expressions.state.NormalState.reply(NormalState.java:118)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.reply(SimpleExpressionPool.java:713)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.replyToParent(SimpleExpressionPool.java:644)
at openwfe.org.engine.expressions.AbstractFlowExpression.replyToParent(AbstractFlowExpression.java:479)
at openwfe.org.engine.expressions.AbstractFlowExpression.applyToParent(AbstractFlowExpression.java:494)
at openwfe.org.engine.expressions.DefinedExpression.apply(DefinedExpression.java:97)
at openwfe.org.engine.expressions.raw.RawExpression.apply(RawExpression.java:371)
at openwfe.org.engine.expressions.state.NormalState.apply(NormalState.java:112)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.applyOrLaunch(SimpleExpressionPool.java:529)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.apply(SimpleExpressionPool.java:542)
at openwfe.org.engine.expressions.IfExpression.apply(IfExpression.java:128)
at openwfe.org.engine.expressions.raw.RawExpression.apply(RawExpression.java:371)
at openwfe.org.engine.expressions.state.NormalState.apply(NormalState.java:112)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.applyOrLaunch(SimpleExpressionPool.java:529)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.apply(SimpleExpressionPool.java:542)
at openwfe.org.engine.expressions.SequentialFlowExpression.apply(SequentialFlowExpression.java:140)
at openwfe.org.engine.expressions.AbstractFlowExpression.launch(AbstractFlowExpression.java:163)
at openwfe.org.engine.expressions.raw.RawExpression.launch(RawExpression.java:383)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.applyOrLaunch(SimpleExpressionPool.java:527)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.launch(SimpleExpressionPool.java:565)
at openwfe.org.engine.impl.launch.SimpleXmlLauncher$1.run(SimpleXmlLauncher.java:453)
Caused by: info.magnolia.cms.exchange.ExchangeException: Message received from subscriber:
at info.magnolia.enterprise.exchange.simple.SimpleSyndicator.activate(SimpleSyndicator.java:92)
at info.magnolia.enterprise.exchange.simple.SimpleSyndicator.activate(SimpleSyndicator.java:56)
at info.magnolia.cms.exchange.simple.BaseSyndicatorImpl.activate(BaseSyndicatorImpl.java:247)
... 46 more
info.magnolia.cms.exchange.ExchangeException: Message received from subscriber:
at info.magnolia.enterprise.exchange.simple.SimpleSyndicator.activate(SimpleSyndicator.java:92)
at info.magnolia.enterprise.exchange.simple.SimpleSyndicator.activate(SimpleSyndicator.java:56)
at info.magnolia.cms.exchange.simple.BaseSyndicatorImpl.activate(BaseSyndicatorImpl.java:247)
at info.magnolia.module.admininterface.commands.ActivationCommand.activateRecursive(ActivationCommand.java:150)
at info.magnolia.module.admininterface.commands.ActivationCommand.execute(ActivationCommand.java:71)
at info.magnolia.commands.MgnlCommand.executePooledOrSynchronized(MgnlCommand.java:141)
at info.magnolia.commands.MgnlCommand.execute(MgnlCommand.java:128)
at info.magnolia.module.workflow.MgnlParticipant.consume(MgnlParticipant.java:116)
at openwfe.org.embed.impl.engine.AbstractEmbeddedParticipant.dispatch(AbstractEmbeddedParticipant.java:154)
at openwfe.org.engine.expressions.ParticipantExpression.dispatch(ParticipantExpression.java:474)
at openwfe.org.engine.expressions.ParticipantExpression.regularDispatch(ParticipantExpression.java:489)
at openwfe.org.engine.expressions.ParticipantExpression.apply(ParticipantExpression.java:430)
at openwfe.org.engine.expressions.raw.RawExpression.apply(RawExpression.java:371)
at openwfe.org.engine.expressions.state.NormalState.apply(NormalState.java:112)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.applyOrLaunch(SimpleExpressionPool.java:529)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.apply(SimpleExpressionPool.java:542)
at openwfe.org.engine.expressions.SequentialFlowExpression.apply(SequentialFlowExpression.java:140)
at openwfe.org.engine.expressions.state.NormalState.apply(NormalState.java:112)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.applyOrLaunch(SimpleExpressionPool.java:529)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.apply(SimpleExpressionPool.java:542)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.apply(SimpleExpressionPool.java:554)
at openwfe.org.engine.expressions.SequenceExpression.reply(SequenceExpression.java:130)
at openwfe.org.engine.expressions.state.NormalState.reply(NormalState.java:118)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.reply(SimpleExpressionPool.java:713)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.replyToParent(SimpleExpressionPool.java:644)
at openwfe.org.engine.expressions.AbstractFlowExpression.replyToParent(AbstractFlowExpression.java:479)
at openwfe.org.engine.expressions.IfExpression.applyConsequence(IfExpression.java:260)
at openwfe.org.engine.expressions.IfExpression.reply(IfExpression.java:189)
at openwfe.org.engine.expressions.state.NormalState.reply(NormalState.java:118)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.reply(SimpleExpressionPool.java:713)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.replyToParent(SimpleExpressionPool.java:644)
at openwfe.org.engine.expressions.AbstractFlowExpression.replyToParent(AbstractFlowExpression.java:479)
at openwfe.org.engine.expressions.AbstractFlowExpression.applyToParent(AbstractFlowExpression.java:494)
at openwfe.org.engine.expressions.DefinedExpression.apply(DefinedExpression.java:97)
at openwfe.org.engine.expressions.raw.RawExpression.apply(RawExpression.java:371)
at openwfe.org.engine.expressions.state.NormalState.apply(NormalState.java:112)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.applyOrLaunch(SimpleExpressionPool.java:529)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.apply(SimpleExpressionPool.java:542)
at openwfe.org.engine.expressions.IfExpression.apply(IfExpression.java:128)
at openwfe.org.engine.expressions.raw.RawExpression.apply(RawExpression.java:371)
at openwfe.org.engine.expressions.state.NormalState.apply(NormalState.java:112)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.applyOrLaunch(SimpleExpressionPool.java:529)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.apply(SimpleExpressionPool.java:542)
at openwfe.org.engine.expressions.SequentialFlowExpression.apply(SequentialFlowExpression.java:140)
at openwfe.org.engine.expressions.AbstractFlowExpression.launch(AbstractFlowExpression.java:163)
at openwfe.org.engine.expressions.raw.RawExpression.launch(RawExpression.java:383)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.applyOrLaunch(SimpleExpressionPool.java:527)
at openwfe.org.engine.impl.expool.SimpleExpressionPool.launch(SimpleExpressionPool.java:565)
at openwfe.org.engine.impl.launch.SimpleXmlLauncher$1.run(SimpleXmlLauncher.java:453)

Please let me know if you require more information to debug.



 Comments   
Comment by Philipp Bracher [ 10/Aug/07 ]

Very interresting

Please provide your custom workflow and command defintion (as xml export).

Comment by Thomas Madej [ 10/Aug/07 ]

<process-definition name="activation" revision="j0.0.2">
<sequence>

<activate/>
</sequence>

<process-definition name="revision-round">
<loop>
<while test="${field:action} == reject"/>

<to-editor/>

<if test="${field:action} != proceed">
<break/>
</if>

<to-publisher/>
</loop>

</process-definition>

<process-definition name="to-publisher">
<sequence>
<!--
uncomment if you like to use an email notification
-->

<!--
<set field="mailTo" value="group-publisher"/>
<set field="mailTemplate" value="testMagnolia"/>
<participant ref="command-sendMail"/>
-->

<participant ref="group-publisher"/>
</sequence>
</process-definition>

<process-definition name="to-editor">
<sequence>
<!-- assign back to the user who launched the activation -->
<set field="assignTo" field-value="activator"/>

<!--
uncomment if you like to use an email notification
-->

<!--
<set field="mailTo" value="user-${f:assignTo}"/>
<set field="mailTemplate" value="testMagnolia"/>
<participant ref="command-sendMail"/>
-->
<participant ref="group-editor"/>
</sequence>
</process-definition>

<process-definition name="activate">
<sequence>
<!-- wait if scheduled -->

<if>

<defined field-value="startDate"/>

<sleep until="${f:startDate}"/>
</if>

<!-- activate -->
<participant ref="command-activate"/>

<if>

<defined field-value="exception"/>

<!-- restart again -->
<activation/>
<break/>
</if>

<!-- deactivate (if scheduled)-->
<if>
<defined field-value="endDate"/>

<sequence>

<sleep until="${f:endDate}"/>
<participant ref="command-deactivate"/>
</sequence>
</if>

</sequence>
</process-definition>

</process-definition>

Comment by Thomas Madej [ 10/Aug/07 ]

Also, the workflow name has not changed.

Comment by Jan Haderka [ 06/Aug/08 ]

not reproducible with 3.6.1

Generated at Mon Feb 12 03:29:14 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.