Author: midon
Date: Tue Jul 8 14:52:43 2008
New Revision: 674981
URL: http://svn.apache.org/viewvc?rev=674981&view=rev
Log:
do not return too early when a message has no part. we meay need headers
Modified:
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ScopeFrame.java
Modified:
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
URL:
http://svn.apache.org/viewvc/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java?rev=674981&r1=674980&r2=674981&view=diff
==============================================================================
---
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
(original)
+++
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
Tue Jul 8 14:52:43 2008
@@ -483,7 +483,7 @@
public Node readVariable(Long scopeInstanceId, String varname, boolean
forWriting) throws FaultException {
ScopeDAO scopedao = _dao.getScope(scopeInstanceId);
XmlDataDAO var = scopedao.getVariable(varname);
- return var.isNull() ? null : var.get();
+ return (var == null || var.isNull()) ? null : var.get();
}
public Node writeVariable(VariableInstance variable, Node changes) {
Modified:
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ScopeFrame.java
URL:
http://svn.apache.org/viewvc/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ScopeFrame.java?rev=674981&r1=674980&r2=674981&view=diff
==============================================================================
---
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ScopeFrame.java
(original)
+++
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ScopeFrame.java
Tue Jul 8 14:52:43 2008
@@ -170,19 +170,7 @@
//
Node fetchVariableData(BpelRuntimeContext brc, VariableInstance variable,
boolean forWriting)
- throws FaultException
- {
- // Special case of messageType variables with no part
- if (variable.declaration.type instanceof OMessageVarType) {
- OMessageVarType msgType = (OMessageVarType)
variable.declaration.type;
- if (msgType.parts.size() == 0) {
- Document doc = DOMUtils.newDocument();
- Element root = doc.createElement("message");
- doc.appendChild(root);
- return root;
- }
- }
-
+ throws FaultException {
if (variable.declaration.extVar != null) {
// Note, that when using external variables, the database will not
contain the value of the
// variable, instead we need to go the external variable
subsystems.
@@ -207,6 +195,16 @@
} else /* not external */ {
Node data =
brc.readVariable(variable.scopeInstance,variable.declaration.name, forWriting);
if (data == null) {
+ // Special case of messageType variables with no part
+ if (variable.declaration.type instanceof OMessageVarType) {
+ OMessageVarType msgType = (OMessageVarType)
variable.declaration.type;
+ if (msgType.parts.size() == 0) {
+ Document doc = DOMUtils.newDocument();
+ Element root = doc.createElement("message");
+ doc.appendChild(root);
+ return root;
+ }
+ }
throw new
FaultException(oscope.getOwner().constants.qnUninitializedVariable,
"The variable " + variable.declaration.name + " isn't
properly initialized.");
}