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.