IBM Support

JR49184: STACKOVERFLOWERROR OCCURS WHEN EXECUTING AD-HOC TASK DUE TO A RECURSIVE RoutingAPIHelper.findFlowObjectById() CALL

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • When a BPD has linked or sub-processes that are recursively
    calling itself, invoking ad-hoc events may cause a
    StackOverflowError due to a deep execution tree.
    
    .
       This is what the java stack of the exception will look like.
    Caused by: java.lang.StackOverflowError
     at
    com.lombardisoftware.client.persistence.common.ID$UUID.getDBValu
    e(ID.java:212)
     at
    com.lombardisoftware.client.persistence.common.ID.getDBValue(ID.
    java:134)
     at
    com.lombardisoftware.instrumentation.records.PORecord.<init>(POR
    ecord.java:28)
     at
    com.lombardisoftware.instrumentation.POInstrumentationPoint.reco
    rd(POInstrumentationPoint.java:50)
     at
    com.lombardisoftware.client.persistence.common.factorydelegate.F
    actoryDelegate.recordCacheHit(FactoryDelegate.java:17)
     at
    com.lombardisoftware.client.persistence.common.factorydelegate.V
    ersionedFactoryDelegate.findByPrimaryKey
    (VersionedFactoryDelegate.java:84)
     at
    com.lombardisoftware.client.persistence.common.AbstractVersioned
    POFactory.findByPrimaryKey
    (AbstractVersionedPOFactory.java:151)
     at
    com.lombardisoftware.bpd.model.impl.BPDBusinessProcessDiagramFac
    tory.findByPrimaryKey
    (BPDBusinessProcessDiagramFactory.java:98)
     at
    com.lombardisoftware.bpd.model.impl.BPDBusinessProcessDiagramFac
    tory.findByPrimaryKey
    (BPDBusinessProcessDiagramFactory.java:89)
     at
    com.lombardisoftware.bpd.model.impl.BPDBusinessProcessDiagramFac
    tory.findByPrimaryKey
    (BPDBusinessProcessDiagramFactory.java:84)
     at
    com.lombardisoftware.bpd.runtime.engine.RoutingAPIHelper.getExte
    rnalDiagram(RoutingAPIHelper.java:654)
     at
    com.lombardisoftware.bpd.runtime.engine.RoutingAPIHelper.findFlo
    wObjectById(RoutingAPIHelper.java:614)
     at
    com.lombardisoftware.bpd.runtime.engine.RoutingAPIHelper.findFlo
    wObjectById(RoutingAPIHelper.java:616)
     at
    com.lombardisoftware.bpd.runtime.engine.RoutingAPIHelper.findFlo
    wObjectById(RoutingAPIHelper.java:616)
     at
    com.lombardisoftware.bpd.runtime.engine.RoutingAPIHelper.findFlo
    wObjectById(RoutingAPIHelper.java:616)
    (and numerous more RoutingAPIHelper.findFlowObjectById() calls)
    

Local fix

  • na
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  IBM Business Process Manager (BPM)          *
    *                  V7.5.1.1 Advanced, Standard, and Express    *
    ****************************************************************
    * PROBLEM DESCRIPTION: StackOverFlowError occurs when          *
    *                      you run a business process definition   *
    *                      (BPD) that contains a recursive linked  *
    *                      process.                                *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    When you run an instance of a BPD that contains a recursive
    linked process, the same node in that recursive linked process
    is endlessly revisited, which results in the
    StackOverFlowError in the SystemOut.log file:
    Caused by:
    com.lombardisoftware.client.delegate.BusinessDelegateException:
    java.lang.StackOverflowError
    at
    com.lombardisoftware.client.delegate.BusinessDelegateException.a
    sBusinessDelegateException(BusinessDelegateException.java:41)
    at
    com.lombardisoftware.client.delegate.common.WebsphereDelegateHel
    per.doAsCurrentSubjectContextSensitive(WebsphereDelegateHelper.j
    ava:199)
    at
    com.lombardisoftware.client.delegate.PersistenceServicesDelegate
    Default.findQuietlyByPrimaryKey(PersistenceServicesDelegateDefau
    lt.java:332)
    at
    com.lombardisoftware.client.persistence.common.factorydelegate.U
    nversionedFactoryDelegate.findQuietlyByPrimaryKey(UnversionedFac
    toryDelegate.java:49)
    at
    com.lombardisoftware.client.persistence.common.factorydelegate.U
    ncachedUnversionedFactoryDelegate.findQuietlyByPrimaryKey(Uncach
    edUnversionedFactoryDelegate.java:27)
    at
    com.lombardisoftware.client.persistence.common.AbstractUnversion
    edPOFactory.findQuietlyByPrimaryKey(AbstractUnversionedPOFactory
    .java:134)
    at
    com.lombardisoftware.client.persistence.DefaultSnapshotHelper.ge
    tLatestSnapshot(DefaultSnapshotHelper.java:43)
     óÔé¼ ª
     óÔé¼ ª
    The following method findFlowObjectById() is infinitely called
    until the exception is thrown.
    at
    com.lombardisoftware.core.script.js.TWTaskScriptable.findFlowObj
    ectById(TWTaskScriptable.java:432)
    at
    com.lombardisoftware.core.script.js.TWTaskScriptable.findFlowObj
    ectById(TWTaskScriptable.java:432)
    at
    com.lombardisoftware.core.script.js.TWTaskScriptable.findFlowObj
    ectById(TWTaskScriptable.java:432)
    

Problem conclusion

  • A fix is available for IBM BPM V8.0.1.2 that remembers whether
    a node in a BPD tree has been visited earlier or not. If a
    node has been visited earlier, it is skipped and goes to  the
    next node.
    
    On Fix Central (http://www.ibm.com/support/fixcentral), search
    for JR49184:
    1. Select the product group, product, installed version, and
    platform, and click Continue.
    2. Select APAR or SPR, enter JR49184, and click Continue.
    
    When you download fix packages, ensure that you also download
    the readme file for each fix. Review each readme file for
    additional installation instructions and information about the
    fix.
    

Temporary fix

Comments

APAR Information

  • APAR number

    JR49184

  • Reported component name

    BPM ADVANCED

  • Reported component ID

    5725C9400

  • Reported release

    801

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2014-01-29

  • Closed date

    2014-03-25

  • Last modified date

    2015-02-09

  • 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 ADVANCED

  • Fixed component ID

    5725C9400

Applicable component levels

  • R800 PSY

       UP

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSFTN5","label":"IBM Business Process Manager Advanced"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"8.0.1","Edition":"","Line of Business":{"code":"LOB36","label":"IBM Automation"}}]

Document Information

Modified date:
09 February 2015