Direct links to fixes
APAR status
Closed as program error.
Error description
When a business process instance contains local variables with recursive values, a java.lang.StackOverflowError exception is thrown. The following example is a typical exception stack trace: [9/27/16 13:10:30:713 EEST] 00000156 JavaScriptRun E CWLLG2015E: An unexpected runtime exception occurred. See exception for more details. Error: null. java.lang.StackOverflowError at com.lombardisoftware.core.TWObject.calcDeepEquals(TWObject.java: 1632) at com.lombardisoftware.core.TWObject.calcDeepEquals(TWObject.java: 1658) at com.lombardisoftware.core.TWObject.calcDeepEquals(TWObject.java: 1692) at com.lombardisoftware.core.TWObject.calcDeepEquals(TWObject.java: 1658) at com.lombardisoftware.core.TWObject.calcDeepEquals(TWObject.java: 1692) at com.lombardisoftware.core.TWObject.calcDeepEquals(TWObject.java: 1658) at com.lombardisoftware.core.TWObject.calcDeepEquals(TWObject.java: 1658) ... at com.lombardisoftware.core.TWObject.calcDeepEquals(TWObject.java: 1692) at com.lombardisoftware.core.TWObject.calcDeepEquals(TWObject.java: 1658) at com.lombardisoftware.core.TWObject.calcDeepEquals(TWObject.java: 1658) at com.lombardisoftware.core.TWObject.calcDeepEquals(TWObject.java: 1658) at com.lombardisoftware.core.TWObject.getDeepEquals(TWObject.java:1 599) at com.lombardisoftware.bpd.runtime.engine.st.AbstractBPDSymbolTabl e.set(AbstractBPDSymbolTable.java:203) at com.lombardisoftware.bpd.runtime.engine.js.AbstractBPDSymbolTabl eScriptable.put(AbstractBPDSymbolTableScriptable.java:135) at org.mozilla.javascript.ScriptableObject.putProperty(ScriptableOb ject.java:2348) at org.mozilla.javascript.ScriptRuntime.setObjectProp(ScriptRuntime .java:1598) at org.mozilla.javascript.ScriptRuntime.setObjectProp(ScriptRuntime .java:1592) at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.jav a:1248) at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:81 5) at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunct ion.java:109) at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.j ava:394) at com.lombardisoftware.core.script.JavaScriptContextFactory.doTopC all(JavaScriptContextFactory.java:192) at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.jav a:3091) at org.mozilla.javascript.InterpretedFunction.exec(InterpretedFunct ion.java:120) at com.lombardisoftware.core.script.js.JSScript.exec(JSScript.java: 78) at com.lombardisoftware.core.script.js.JavaScriptRunner$2.execute(J avaScriptRunner.java:287) at com.lombardisoftware.core.script.js.PreparedScope.executeWithSco pe(PreparedScope.java:223) at com.lombardisoftware.core.script.js.JavaScriptRunner.execute(Jav aScriptRunner.java:285) at com.lombardisoftware.core.script.js.JavaScriptRunner.evalScript( JavaScriptRunner.java:392) at com.lombardisoftware.bpd.runtime.engine.BPDExecutionTreeNode.exe cuteJSScript(BPDExecutionTreeNode.java:691) at com.lombardisoftware.bpd.runtime.engine.BPDExecutionTreeNode.ass ign(BPDExecutionTreeNode.java:661) at com.lombardisoftware.bpd.runtime.engine.AbstractWorkerContext.as sign(AbstractWorkerContext.java:27) at com.lombardisoftware.bpd.component.flowcomponent.activity.worker .BPDActivityWorker.processCompletedTaskOutputMappings(BPDActivit yWorker.java:2027) at com.lombardisoftware.bpd.component.flowcomponent.activity.worker .BPDActivityWorker.processCompletedTaskOutputs(BPDActivityWorker .java:1970) at com.lombardisoftware.bpd.component.flowcomponent.activity.worker .BPDActivityWorker.executeImplementation(BPDActivityWorker.java: 624) at com.lombardisoftware.bpd.component.flowcomponent.activity.worker .BPDActivityWorker.doWork(BPDActivityWorker.java:371) at com.lombardisoftware.bpd.runtime.engine.FlowObjectExecutionTreeN ode.doWork(FlowObjectExecutionTreeNode.java:383) at com.lombardisoftware.bpd.runtime.engine.BPDEngine.executeTreeNod e(BPDEngine.java:427) at com.lombardisoftware.bpd.runtime.engine.BPDEngine.processNotific ationRegardlessStatus(BPDEngine.java:717) at com.lombardisoftware.bpd.runtime.engine.BPDEngine.processNotific ation(BPDEngine.java:686) at com.lombardisoftware.bpd.runtime.engine.BPDEngine.processNotific ation(BPDEngine.java:674) at com.lombardisoftware.bpd.runtime.engine.notification.BPDFlowObje ctNotification.applyToEngine(BPDFlowObjectNotification.java:15) at com.lombardisoftware.bpd.component.flowcomponent.activity.worker .notification.TaskActivityCompletedNotification.applyToEngine(Ta skActivityCompletedNotification.java:350) at com.lombardisoftware.bpd.runtime.engine.quartz.AbstractNotificat ionBpdTask.doWithLock(AbstractNotificationBpdTask.java:77) at com.lombardisoftware.bpd.runtime.engine.quartz.DbNotificationBpd Task.doWithLock(DbNotificationBpdTask.java:56) at com.lombardisoftware.bpd.runtime.engine.quartz.AbstractBpdTask$1 .doExecuteDuringLock(AbstractBpdTask.java:97) at com.lombardisoftware.bpd.runtime.engine.quartz.AbstractBpdTask$1 .doExecuteDuringLock(AbstractBpdTask.java:79) at com.lombardisoftware.bpd.runtime.engine.util.LockBPDInstanceComm and$1.doInTransaction(LockBPDInstanceCommand.java:69) at com.lombardisoftware.server.core.TXCommand$2.call(TXCommand.java :85) at com.lombardisoftware.utility.spring.ProgrammaticTransactionSuppo rt.executeInExistingTransaction(ProgrammaticTransactionSupport.j ava:748) at com.lombardisoftware.utility.spring.ProgrammaticTransactionSuppo rt.execute(ProgrammaticTransactionSupport.java:379) at com.lombardisoftware.server.core.TXCommand.executeInDeadlockRetr yLoop(TXCommand.java:83) at com.lombardisoftware.bpd.runtime.engine.util.LockBPDInstanceComm and.execute(LockBPDInstanceCommand.java:81) at com.lombardisoftware.bpd.runtime.engine.quartz.AbstractBpdTask$2 .doInTransaction(AbstractBpdTask.java:119) at com.lombardisoftware.bpd.runtime.engine.quartz.AbstractBpdTask$2 .doInTransaction(AbstractBpdTask.java:115) at com.lombardisoftware.server.core.TXCommand$2.call(TXCommand.java :85) at com.lombardisoftware.utility.spring.ProgrammaticTransactionSuppo rt$3.doInTransaction(ProgrammaticTransactionSupport.java:501) at org.springframework.transaction.jta.WebSphereUowTransactionManag er$UOWActionAdapter.run(WebSphereUowTransactionManager.java:306) at com.ibm.ws.uow.embeddable.EmbeddableUOWManagerImpl.runUnderNewUO W(EmbeddableUOWManagerImpl.java:791) at com.ibm.ws.uow.embeddable.EmbeddableUOWManagerImpl.runUnderUOW(E mbeddableUOWManagerImpl.java:370) at org.springframework.transaction.jta.WebSphereUowTransactionManag er.execute(WebSphereUowTransactionManager.java:252) at com.lombardisoftware.utility.spring.ProgrammaticTransactionSuppo rt.executeInNewTransaction(ProgrammaticTransactionSupport.java:4 89) at com.lombardisoftware.utility.spring.ProgrammaticTransactionSuppo rt.execute(ProgrammaticTransactionSupport.java:350) at com.lombardisoftware.server.core.TXCommand.executeInDeadlockRetr yLoop(TXCommand.java:83) at com.lombardisoftware.server.core.TXCommand.execute(TXCommand.jav a:72) at com.lombardisoftware.bpd.runtime.engine.quartz.AbstractBpdTask.e xecute(AbstractBpdTask.java:115) at com.lombardisoftware.bpd.runtime.engine.quartz.AbstractBpdTask.e xecute(AbstractBpdTask.java:60) at com.lombardisoftware.server.scheduler.Engine.execute(Engine.java :1004) at com.lombardisoftware.server.scheduler.Engine.executeThreadTasks( Engine.java:730) at com.lombardisoftware.server.scheduler.Engine$1.run(Engine.java:6 77) ...
Local fix
Problem summary
IBM BPM does not support recursive business object values, which is what occurs when the complex value of a business object contains itself. If a variable of a BPD instance contains a recursive value, a java.lang.StackOverflowError is thrown, and the BPD instance goes into the FAILED state.
Problem conclusion
A fix is available for IBM BPM V8.5.7 cumulative fix 2016.06 on request from level 3 support that recognizes recursive values and handles them correctly. A fix is included in IBM BPM V8.5.7 cumulative fix 2016.12
Temporary fix
Comments
APAR Information
APAR number
JR56802
Reported component name
BPM STANDARD
Reported component ID
5725C9500
Reported release
857
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2016-10-11
Closed date
2016-11-23
Last modified date
2016-11-23
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
BPM STANDARD
Fixed component ID
5725C9500
Applicable component levels
R857 PSY
UP
[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSFTDH","label":"IBM Business Process Manager Standard"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"857","Line of Business":{"code":"LOB45","label":"Automation"}}]
Document Information
Modified date:
14 October 2021