IBM Support

JR56802: YOU RECEIVE THE CWLLG2015E ERROR BECAUSE A STACKOVERFLOW ERROR OCCURRED

Subscribe

You can track all active APARs for this component.

 

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