Author: mriou
Date: Fri Aug 10 12:48:38 2007
New Revision: 564734
URL: http://svn.apache.org/viewvc?view=rev&rev=564734
Log:
Checking for unknown parts in Jaxen xpath evaluation.
Modified:
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/JaxenContexts.java
Modified:
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/JaxenContexts.java
URL:
http://svn.apache.org/viewvc/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/JaxenContexts.java?view=diff&rev=564734&r1=564733&r2=564734
==============================================================================
---
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/JaxenContexts.java
(original)
+++
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/JaxenContexts.java
Fri Aug 10 12:48:38 2007
@@ -170,9 +170,18 @@
Node variableNode = _xpathEvalCtx.readVariable(variable, part);
if (variableNode == null)
throw new WrappedFaultException.JaxenUnresolvableException(
- new
FaultException(variable.getOwner().constants.qnSelectionFailure, "Unknown
variable " + localName));
+ new
FaultException(variable.getOwner().constants.qnSelectionFailure,
+ "Unknown variable " + localName));
OVarType type = variable.type;
- if (type instanceof OMessageVarType) type =
((OMessageVarType)type).parts.get(partName).type;
+ if (type instanceof OMessageVarType) {
+ OMessageVarType.Part typePart =
((OMessageVarType)type).parts.get(partName);
+ if (typePart == null) {
+ throw new
WrappedFaultException.JaxenUnresolvableException(
+ new
FaultException(variable.getOwner().constants.qnSelectionFailure,
+ "Unknown part " + partName + " for
variable " + localName));
+ }
+ type = typePart.type;
+ }
if (type instanceof OXsdTypeVarType &&
((OXsdTypeVarType)type).simple) {
String text = variableNode.getTextContent();