Details
-
Bug
-
Resolution: Done
-
Major
-
None
-
None
-
None
Description
When a second message is received, with a correlation property based on a header property, it appears that the correlation to session is performed before the header information is merged into the message.
Initial evidence based on break point in org.apache.ode.bpel.engine.BpelRuntimeContextImpl method mergeHeaders, which is called during the processing of the first message, but not the second.
So it appears that when initialising a correlation set, the message is received (headers merged) and then the correlation established. Whereas subsequent messages are processed for correlation information prior to this stage, resulting in:
15:08:30,371 ERROR [BpelProcess] Unable to evaluate property alias "OMessageVarType#15(
{http://www.jboss.org/bpel/examples/wsdl}GoodbyeMessage)[ID][
{OXPath10Expression text()}]" to incoming message: No results for expression: 'text()'
org.apache.ode.bpel.common.FaultException: No results for expression: 'text()'
at org.apache.ode.bpel.elang.xpath20.runtime.XPath20ExpressionRuntime.evaluateNode(XPath20ExpressionRuntime.java:189)
at org.apache.ode.bpel.runtime.ExpressionLanguageRuntimeRegistry.evaluateNode(ExpressionLanguageRuntimeRegistry.java:84)
at org.apache.ode.bpel.engine.BpelProcess.extractProperty(BpelProcess.java:371)
at org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.computeCorrelationKey(PartnerLinkMyRoleImpl.java:340)