Direct links to fixes
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":"LOB45","label":"Automation"}}]
Document Information
Modified date:
09 February 2015