You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by ka...@apache.org on 2009/06/05 00:15:32 UTC

svn commit: r781860 - in /ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel: engine/BpelRuntimeContextImpl.java runtime/ASSIGN.java runtime/EH_EVENT.java

Author: karthick
Date: Thu Jun  4 22:15:32 2009
New Revision: 781860

URL: http://svn.apache.org/viewvc?rev=781860&view=rev
Log:
Define a frame for the event handler's <scope> activity, so that its variables are resolved properly.

Modified:
    ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
    ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java
    ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/EH_EVENT.java

Modified: ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java?rev=781860&r1=781859&r2=781860&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java Thu Jun  4 22:15:32 2009
@@ -185,6 +185,9 @@
      * @see BpelRuntimeContext#isVariableInitialized(org.apache.ode.bpel.runtime.VariableInstance)
      */
     public boolean isVariableInitialized(VariableInstance var) {
+		if (var == null) {
+			return false;
+		}
         ScopeDAO scopeDAO = _dao.getScope(var.scopeInstance);
         XmlDataDAO dataDAO = scopeDAO.getVariable(var.declaration.name);
         return !dataDAO.isNull();

Modified: ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java?rev=781860&r1=781859&r2=781860&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java Thu Jun  4 22:15:32 2009
@@ -128,6 +128,11 @@
         Node lval = null;
         if (!(to instanceof OAssign.PartnerLinkRef)) {
             VariableInstance lvar = _scopeFrame.resolve(to.getVariable());
+            if (lvar == null) {
+                String msg = __msgs.msgEvalException(to.toString(), "Could not resolve variable in current scope");
+                if (__log.isDebugEnabled()) __log.debug(to + ": " + msg);
+                throw new FaultException(getOAsssign().getOwner().constants.qnSelectionFailure, msg);
+            }
             if (!napi.isVariableInitialized(lvar)) {
                 Document doc = DOMUtils.newDocument();
                 Node val = to.getVariable().type.newInstance(doc);

Modified: ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/EH_EVENT.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/EH_EVENT.java?rev=781860&r1=781859&r2=781860&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/EH_EVENT.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/EH_EVENT.java Thu Jun  4 22:15:32 2009
@@ -303,7 +303,12 @@
 
                             LinkFrame lf = new LinkFrame(null);
 
-                            instance(new SCOPE(child,ehScopeFrame, lf));
+                            ScopeFrame innerScopeFrame = new ScopeFrame((OScope) _oevent.activity,
+                                    getBpelRuntimeContext().createScopeInstance(_scopeFrame.scopeInstanceId, (OScope) _oevent.activity),
+                                    ehScopeFrame,
+                                    _comps,
+                                    _fault);
+                            instance(new SCOPE(child, innerScopeFrame, lf));
 
                             // If we previously terminated the other activiites, then we do the same
                             // here; this is easier then undoing the receive.