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.");
             }


Reply via email to