You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by mr...@apache.org on 2008/08/27 19:11:11 UTC

svn commit: r689531 - in /ode/branches/rtver: bpel-api/src/main/java/org/apache/ode/bpel/rapi/ bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ bpel-test/src/main/java/org/apache/ode/test/ bpel-test/src/test/java/org/apache/ode/test/ runtime-repo...

Author: mriou
Date: Wed Aug 27 10:11:09 2008
New Revision: 689531

URL: http://svn.apache.org/viewvc?rev=689531&view=rev
Log:
Lots of tests are passing now. But some aren't. And some of those fail randomly. Tough luck.

Modified:
    ode/branches/rtver/bpel-api/src/main/java/org/apache/ode/bpel/rapi/CorrelationSetModel.java
    ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelInstanceWorker.java
    ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MessageExchangeImpl.java
    ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ODEProcess.java
    ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkMyRoleImpl.java
    ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkPartnerRoleImpl.java
    ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/UnreliableMyRoleMessageExchangeImpl.java
    ode/branches/rtver/bpel-test/src/main/java/org/apache/ode/test/BPELTestAbstract.java
    ode/branches/rtver/bpel-test/src/test/java/org/apache/ode/test/ExtensibilityTest.java
    ode/branches/rtver/bpel-test/src/test/java/org/apache/ode/test/ExternalVariableTest.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ACTIVITY.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ASSIGN.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/BpelJacobRunnable.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EH_ALARM.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EH_EVENT.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EventContextImpl.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ExprEvaluationContextImpl.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ExtensionContextImpl.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OScope.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/RuntimeInstanceImpl.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/SCOPEACT.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath20/JaxpVariableResolver.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath20/WrappedFaultException.java

Modified: ode/branches/rtver/bpel-api/src/main/java/org/apache/ode/bpel/rapi/CorrelationSetModel.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/bpel-api/src/main/java/org/apache/ode/bpel/rapi/CorrelationSetModel.java?rev=689531&r1=689530&r2=689531&view=diff
==============================================================================
--- ode/branches/rtver/bpel-api/src/main/java/org/apache/ode/bpel/rapi/CorrelationSetModel.java (original)
+++ ode/branches/rtver/bpel-api/src/main/java/org/apache/ode/bpel/rapi/CorrelationSetModel.java Wed Aug 27 10:11:09 2008
@@ -1,11 +1,11 @@
 package org.apache.ode.bpel.rapi;
 
 import javax.xml.namespace.QName;
-import java.util.Set;
+import java.util.List;
 
 public interface CorrelationSetModel {
 
     int getId();
 
-    Set<PropertyAliasModel> getAliases(QName messageType);
+    List<PropertyAliasModel> getAliases(QName messageType);
 }

Modified: ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelInstanceWorker.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelInstanceWorker.java?rev=689531&r1=689530&r2=689531&view=diff
==============================================================================
--- ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelInstanceWorker.java (original)
+++ ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelInstanceWorker.java Wed Aug 27 10:11:09 2008
@@ -56,8 +56,12 @@
         _todoQueue.add(runnable);
         // We mayh need to reschedule this thread if we've dropped out of the end of the run() method.
         if (!_running) {
+            System.out.println("! RUNNING");
             _running = true;
             _process.enqueueRunnable(this);
+        } else {
+            System.out.println("RUNNING");
+//            _process.enqueueRunnable(this);
         }
     }
  

Modified: ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MessageExchangeImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MessageExchangeImpl.java?rev=689531&r1=689530&r2=689531&view=diff
==============================================================================
--- ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MessageExchangeImpl.java (original)
+++ ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MessageExchangeImpl.java Wed Aug 27 10:11:09 2008
@@ -91,7 +91,7 @@
     MessageImpl _request;
 
     /** The point at which this message-exchange will time out. */
-    long _timeout = 30 * 1000;
+    long _timeout = 90 * 1000;
 
     //
     // The following fields need to be volatile, since a random  IL thread may set them.
@@ -131,8 +131,6 @@
 
     private AckType _ackType;
 
-
-
     public MessageExchangeImpl(
             ODEProcess process,
             Long iid,

Modified: ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ODEProcess.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ODEProcess.java?rev=689531&r1=689530&r2=689531&view=diff
==============================================================================
--- ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ODEProcess.java (original)
+++ ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ODEProcess.java Wed Aug 27 10:11:09 2008
@@ -1029,8 +1029,8 @@
             // the stack.
             if (old == Status.ASYNC) {
                 MyRoleMessageExchangeImpl mymex = _myRoleMexCache.get(mexdao);
+                System.out.println("ON ASYNC ACK");
                 mymex.onAsyncAck(mexdao);
-
                 try {
                     _contexts.mexContext.onMyRoleMessageExchangeStateChanged(mymex);
                 } catch (Throwable t) {

Modified: ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkMyRoleImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkMyRoleImpl.java?rev=689531&r1=689530&r2=689531&view=diff
==============================================================================
--- ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkMyRoleImpl.java (original)
+++ ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkMyRoleImpl.java Wed Aug 27 10:11:09 2008
@@ -153,7 +153,6 @@
                 if (messageRoute != null) {
                     if (__log.isDebugEnabled()) {
                         __log.debug("INPUTMSG: " + correlatorId + ": ckey " + key + " ROUTED TO (grp,index,iid) = (" + messageRoute.getGroupId() + "," + messageRoute.getIndex() + ", " + messageRoute.getTargetInstance().getInstanceId() +  ")");
-   
                     }
                     matchedKey = key;
                     break;
@@ -281,7 +280,7 @@
     }
 
     private CorrelationKey computeCorrelationKey(CorrelationSetModel cset, QName messageName, Element msg) {
-        Set<PropertyAliasModel> aliases = cset.getAliases(messageName);
+        List<PropertyAliasModel> aliases = cset.getAliases(messageName);
         String[] values = new String[aliases.size()];
         int jIdx = 0;
         for (PropertyAliasModel alias : aliases) {
@@ -293,7 +292,7 @@
                 __log.error(emsg, fe);
                 throw new InvalidMessageException(emsg, fe);
             }
-            values[jIdx] = value;
+            values[jIdx++] = value;
         }
 
         return new CorrelationKey(cset.getId(), values);

Modified: ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkPartnerRoleImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkPartnerRoleImpl.java?rev=689531&r1=689530&r2=689531&view=diff
==============================================================================
--- ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkPartnerRoleImpl.java (original)
+++ ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkPartnerRoleImpl.java Wed Aug 27 10:11:09 2008
@@ -105,7 +105,7 @@
             if (_contexts.eprContext != null)
                 partnerEpr = _contexts.eprContext.resolveEndpointReference(partnerEprXml);
             else
-                __log.warn("Partner EPR will not be resolved, no EPR context specified!" );
+                __log.debug("Partner EPR will not be resolved, no EPR context specified!" );
         }
 
         EndpointReference myRoleEpr = null;

Modified: ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/UnreliableMyRoleMessageExchangeImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/UnreliableMyRoleMessageExchangeImpl.java?rev=689531&r1=689530&r2=689531&view=diff
==============================================================================
--- ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/UnreliableMyRoleMessageExchangeImpl.java (original)
+++ ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/UnreliableMyRoleMessageExchangeImpl.java Wed Aug 27 10:11:09 2008
@@ -36,7 +36,6 @@
 
     public Future<Status> invokeAsync() {
         if (_future != null) return _future;
-
         if (_request == null) throw new IllegalStateException("Must call setRequest(...)!");
 
         _future = new ResponseFuture();
@@ -66,6 +65,7 @@
         try {
             future.get(Math.max(_timeout, 1), TimeUnit.MILLISECONDS);
             _done = true;
+            System.out.println("EXIT BLOCKING.");
             return getStatus();
         } catch (InterruptedException e) {
             throw new BpelEngineException(e);
@@ -91,16 +91,14 @@
         }
 
         public Status get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {
-
             synchronized (this) {
                 if (_status != null)
                     return _status;
 
                 this.wait(TimeUnit.MILLISECONDS.convert(timeout, unit));
+                System.out.println("EXIT WAIT LOOP.");
 
-                if (_status == null)
-                    throw new TimeoutException();
-
+                if (_status == null) throw new TimeoutException();
                 return _status;
             }
         }
@@ -114,7 +112,9 @@
         }
 
         void done(Status status) {
+            System.out.println("DONE1.");
             synchronized (this) {
+                System.out.println("DONE2.");
                 _status = status;
                 this.notifyAll();
             }
@@ -146,6 +146,7 @@
                 _failureType = failureType;
                 _explanation = explanation;
                 ack(ackType);
+                System.out.println("FUTURE DONE.");
                 _future.done(Status.ACK);
 
             }

Modified: ode/branches/rtver/bpel-test/src/main/java/org/apache/ode/test/BPELTestAbstract.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/bpel-test/src/main/java/org/apache/ode/test/BPELTestAbstract.java?rev=689531&r1=689530&r2=689531&view=diff
==============================================================================
--- ode/branches/rtver/bpel-test/src/main/java/org/apache/ode/test/BPELTestAbstract.java (original)
+++ ode/branches/rtver/bpel-test/src/main/java/org/apache/ode/test/BPELTestAbstract.java Wed Aug 27 10:11:09 2008
@@ -359,7 +359,7 @@
 
         for (Thread testThread : testThreads) {
             testThread.start();
-            if (testThreads.size() > 0) Thread.sleep(2000);
+            if (testThreads.size() > 0) Thread.sleep(3000);
         }
 
         for (Thread testThread : testThreads)
@@ -556,7 +556,9 @@
                 request.setMessage(_invocation.request);
                 _invocation.invokeTime = System.currentTimeMillis();
                 mex.setRequest(request);
+                System.out.println("INVOKE BLCOKING " + _invocation.id);
                 mex.invokeBlocking();
+                System.out.println("DONE INVOKE BLCOKING " + _invocation.id);
 
                 CorrelationStatus cstatus = mex.getCorrelationStatus();
                 if (_invocation.expectedCorrelationStatus != null && !cstatus.equals(_invocation.expectedCorrelationStatus))

Modified: ode/branches/rtver/bpel-test/src/test/java/org/apache/ode/test/ExtensibilityTest.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/bpel-test/src/test/java/org/apache/ode/test/ExtensibilityTest.java?rev=689531&r1=689530&r2=689531&view=diff
==============================================================================
--- ode/branches/rtver/bpel-test/src/test/java/org/apache/ode/test/ExtensibilityTest.java (original)
+++ ode/branches/rtver/bpel-test/src/test/java/org/apache/ode/test/ExtensibilityTest.java Wed Aug 27 10:11:09 2008
@@ -20,14 +20,11 @@
 
 import org.apache.ode.bpel.common.FaultException;
 import org.apache.ode.bpel.compiler.api.CompilationException;
-import org.apache.ode.bpel.compiler.api.CompilationMessage;
-import org.apache.ode.bpel.compiler.v2.CompilerContext;
-import org.apache.ode.bpel.rapi.ExtensibleElement;
 import org.apache.ode.bpel.iapi.BpelEngineException;
-import org.apache.ode.bpel.runtime.extension.AbstractAsyncExtensionOperation;
-import org.apache.ode.bpel.runtime.extension.AbstractExtensionBundle;
-import org.apache.ode.bpel.runtime.extension.ExtensionContext;
-import org.apache.ode.bpel.runtime.extension.ExtensionOperation;
+import org.apache.ode.bpel.rtrep.common.extension.AbstractExtensionBundle;
+import org.apache.ode.bpel.rtrep.common.extension.ExtensionOperation;
+import org.apache.ode.bpel.rtrep.common.extension.ExtensionContext;
+import org.apache.ode.bpel.rtrep.common.extension.AbstractAsyncExtensionOperation;
 import org.apache.ode.utils.DOMUtils;
 import org.junit.Assert;
 import org.junit.Before;
@@ -157,13 +154,14 @@
 			context.complete();
 		}
 
-		@Override
-		public void validate(CompilerContext context, ExtensibleElement element)
-				throws CompilationException {
-			if (element.getNestedElement().getTextContent().trim().equals(TestExtensionBundle.cmpString)) {
-				throw new CompilationException(new CompilationMessage());
-			}
-		}
+//      TODO fix with extensibility validation
+//		@Override
+//		public void validate(CompilerContext context, ExtensibleElement element)
+//				throws CompilationException {
+//			if (element.getNestedElement().getTextContent().trim().equals(TestExtensionBundle.cmpString)) {
+//				throw new CompilationException(new CompilationMessage());
+//			}
+//		}
 	}
 
 }

Modified: ode/branches/rtver/bpel-test/src/test/java/org/apache/ode/test/ExternalVariableTest.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/bpel-test/src/test/java/org/apache/ode/test/ExternalVariableTest.java?rev=689531&r1=689530&r2=689531&view=diff
==============================================================================
--- ode/branches/rtver/bpel-test/src/test/java/org/apache/ode/test/ExternalVariableTest.java (original)
+++ ode/branches/rtver/bpel-test/src/test/java/org/apache/ode/test/ExternalVariableTest.java Wed Aug 27 10:11:09 2008
@@ -17,7 +17,6 @@
 public class ExternalVariableTest extends BPELTestAbstract {
 
     private JdbcExternalVariableModule _jdbcext;
-
     private DataSource _ds;
 
     public void setUp() throws Exception {

Modified: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ACTIVITY.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ACTIVITY.java?rev=689531&r1=689530&r2=689531&view=diff
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ACTIVITY.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ACTIVITY.java Wed Aug 27 10:11:09 2008
@@ -30,6 +30,7 @@
 import org.apache.ode.bpel.evt.ScopeEvent;
 import org.apache.ode.bpel.evt.VariableReadEvent;
 import org.apache.ode.bpel.common.FaultException;
+import org.apache.ode.bpel.evar.ExternalVariableModuleException;
 import org.apache.ode.jacob.IndexedObject;
 import org.w3c.dom.Node;
 
@@ -136,11 +137,11 @@
     }
 
     Node fetchVariableData(VariableInstance variable, boolean forWriting) throws FaultException {
-        if (variable.declaration.extVar != null) {
-            return getBpelRuntime().fetchVariableData(_scopeFrame.resolve(variable.declaration.extVar.related), forWriting);
-        } else {
-            return getBpelRuntime().fetchVariableData(variable, forWriting);
-        }
+        return getBpelRuntime().fetchVariableData(variable, _scopeFrame, forWriting);
+    }
+
+    void commitChanges(VariableInstance var, Node val) throws ExternalVariableModuleException {
+        getBpelRuntime().commitChanges(var, _scopeFrame, val);
     }
 
     public static final class Key implements Serializable {

Modified: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ASSIGN.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ASSIGN.java?rev=689531&r1=689530&r2=689531&view=diff
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ASSIGN.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ASSIGN.java Wed Aug 27 10:11:09 2008
@@ -397,7 +397,7 @@
                 if (__log.isDebugEnabled())
                     __log.debug("ASSIGN Writing variable '" + lval.declaration.name +
                             "' value '" + DOMUtils.domToString(lvalue) +"'");
-                getBpelRuntime().commitChanges(lval, lvalue);
+                commitChanges(lval, lvalue);
                 se = new VariableModificationEvent(lval.declaration.name);
                 ((VariableModificationEvent)se).setNewValue(lvalue);
             }

Modified: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/BpelJacobRunnable.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/BpelJacobRunnable.java?rev=689531&r1=689530&r2=689531&view=diff
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/BpelJacobRunnable.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/BpelJacobRunnable.java Wed Aug 27 10:11:09 2008
@@ -99,13 +99,9 @@
     }
 
     Node initializeVariable(VariableInstance var, Node val) throws ExternalVariableModuleException {
-        if (var.declaration.extVar != null) /* external variable */ {
-            return getBpelRuntime().initializeVariable(_scopeFrame.resolve(var.declaration.extVar.related), val);
-        } else /* normal variable */ {
-            return getBpelRuntime().initializeVariable(var, val);
-        }
+        return getBpelRuntime().initializeVariable(var, _scopeFrame, val);
     }
-    
+
     protected long genMonotonic() {
         return getBpelRuntime().genId();
     }

Modified: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EH_ALARM.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EH_ALARM.java?rev=689531&r1=689530&r2=689531&view=diff
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EH_ALARM.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EH_ALARM.java Wed Aug 27 10:11:09 2008
@@ -87,7 +87,7 @@
             }
 
         // We reduce to waiting for the alarm to be triggered.
-        instance(new WAIT(alarm));
+        instance(new WAIT(alarm, _scopeFrame));
     }
 
     protected EvaluationContext getEvaluationContext() {
@@ -107,8 +107,9 @@
          * Concretion constructor.
          * @param alarm date at which time to fire
          */
-        WAIT(Calendar alarm) {
+        WAIT(Calendar alarm, ScopeFrame scopeFrame) {
             _alarm = alarm;
+            _scopeFrame = scopeFrame;
         }
 
         public void run() {
@@ -122,7 +123,7 @@
 
                     public void onTimeout() {
                         // This is what we are waiting for, fire the activity
-                        instance(new FIRE());
+                        instance(new FIRE(_scopeFrame));
                     }
 
                     public void onCancel() {
@@ -144,7 +145,7 @@
                 })));
             } else /* now is later then alarm time */ {
                 // If the alarm has passed we fire the nested activity
-                instance(new FIRE());
+                instance(new FIRE(_scopeFrame));
             }
 
         }
@@ -156,13 +157,17 @@
     private class FIRE extends BpelJacobRunnable {
         private static final long serialVersionUID = -7261315204412433250L;
 
+        public FIRE(ScopeFrame scopeFrame) {
+            this._scopeFrame = scopeFrame;
+        }
+
         public void run() {
             // Start the child activity.
             ActivityInfo child = new ActivityInfo(genMonotonic(),
                     _oalarm.activity,
                     newChannel(TerminationChannel.class), newChannel(ParentScopeChannel.class));
             instance(createChild(child, _scopeFrame, new LinkFrame(null) ));
-            instance(new ACTIVE(child));
+            instance(new ACTIVE(child, _scopeFrame));
         }
     }
 
@@ -177,8 +182,9 @@
         /** Indicates whether our parent has requested a stop. */
         private boolean _stopped = false;
 
-        ACTIVE(ActivityInfo activity) {
+        ACTIVE(ActivityInfo activity, ScopeFrame scopeFrame) {
             _activity = activity;
+            _scopeFrame = scopeFrame;
         }
 
         public void run() {
@@ -201,7 +207,7 @@
                             _psc.completed(createFault(e.getQName(),_oalarm.forExpr), _comps);
                             return;
                         }
-                        instance(new WAIT(next));
+                        instance(new WAIT(next, _scopeFrame));
                     } else {
                         _psc.completed(faultData, _comps);
                     }

Modified: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EH_EVENT.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EH_EVENT.java?rev=689531&r1=689530&r2=689531&view=diff
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EH_EVENT.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EH_EVENT.java Wed Aug 27 10:11:09 2008
@@ -82,7 +82,7 @@
 
 
     public void run() {
-        instance(new SELECT());
+        instance(new SELECT(_scopeFrame));
     }
 
     /**
@@ -104,6 +104,10 @@
 
         private static final long serialVersionUID = 1L;
 
+        public SELECT(ScopeFrame scopeFrame) {
+            _scopeFrame = scopeFrame;
+        }
+
         /**
          * @see org.apache.ode.jacob.JacobRunnable#run()
          */
@@ -127,14 +131,14 @@
 
                 selector =  new Selector(0,pLinkInstance,_oevent.operation.getName(), _oevent.operation.getOutput() == null, _oevent.messageExchangeId, key);
                 getBpelRuntime().select(pickResponseChannel, null, false, new Selector[] { selector} );
-                instance(new WAITING(pickResponseChannel));
+                instance(new WAITING(pickResponseChannel, _scopeFrame));
             } catch(FaultException e){
                 __log.error(e);
                 if (_fault == null) {
                     _fault = createFault(e.getQName(), _oevent);
                 }
                 terminateActive();
-                instance(new WAITING(null));
+                instance(new WAITING(null, _scopeFrame));
             }
         }
     }
@@ -146,8 +150,9 @@
         private static final long serialVersionUID = 1L;
         private PickResponseChannel _pickResponseChannel;
 
-        private WAITING(PickResponseChannel pickResponseChannel) {
+        private WAITING(PickResponseChannel pickResponseChannel, ScopeFrame scopeFrame) {
             _pickResponseChannel = pickResponseChannel;
+            _scopeFrame = scopeFrame;
         }
 
         public void run() {
@@ -275,7 +280,7 @@
                                     _fault = createFault(e.getQName(), _oevent);
                                     terminateActive();
                                 }
-                                instance(new WAITING(null));
+                                instance(new WAITING(null, _scopeFrame));
                                 return;
                             }
 
@@ -301,18 +306,18 @@
 
 
                             if (_terminated || _stopped || _fault != null)
-                                instance(new WAITING(null));
+                                instance(new WAITING(null, _scopeFrame));
                             else
-                                instance(new SELECT());
+                                instance(new SELECT(_scopeFrame));
                         }
 
 
                         public void onTimeout() {
-                            instance(new WAITING(null));
+                            instance(new WAITING(null, _scopeFrame));
                         }
 
                         public void onCancel() {
-                            instance(new WAITING(null));
+                            instance(new WAITING(null, _scopeFrame));
                         }
                     });
 

Modified: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EventContextImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EventContextImpl.java?rev=689531&r1=689530&r2=689531&view=diff
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EventContextImpl.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EventContextImpl.java Wed Aug 27 10:11:09 2008
@@ -68,7 +68,7 @@
         {
             OScope.Variable var = __scope.getVisibleVariable(varName);
             VariableInstance varInstance = new VariableInstance(__scopeInstanceId, var);
-            Node varNode = __runtimeContext.fetchVariableData(varInstance, false);
+            Node varNode = __runtimeContext.fetchVariableData(varInstance, null, false);
             value = DOMUtils.domToString(varNode);
         }
         catch(Throwable e)

Modified: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ExprEvaluationContextImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ExprEvaluationContextImpl.java?rev=689531&r1=689530&r2=689531&view=diff
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ExprEvaluationContextImpl.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ExprEvaluationContextImpl.java Wed Aug 27 10:11:09 2008
@@ -75,7 +75,7 @@
             VariableReadEvent vre = new VariableReadEvent();
             vre.setVarName(varInstance.declaration.name);
             sendEvent(vre);
-            ret = _native.fetchVariableData(varInstance, part, false);
+            ret = _native.fetchVariableData(varInstance, _scopeInstance, part, false);
         }
         return ret;
     }

Modified: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ExtensionContextImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ExtensionContextImpl.java?rev=689531&r1=689530&r2=689531&view=diff
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ExtensionContextImpl.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ExtensionContextImpl.java Wed Aug 27 10:11:09 2008
@@ -86,24 +86,24 @@
 	public Node readVariable(OScope.Variable variable)
 			throws FaultException {
 		VariableInstance vi = _scopeFrame.resolve(variable);
-		return _context.fetchVariableData(vi, true);
+		return _context.fetchVariableData(vi, _scopeFrame, true);
 	}
 
 	public void writeVariable(String variableName, Node value)
 			throws FaultException, ExternalVariableModuleException {
 		VariableInstance vi = _scopeFrame.resolve(getVisibleVariable(variableName));
-		_context.commitChanges(vi, value);
+		_context.commitChanges(vi, _scopeFrame, value);
 	}
 
 	public Node readVariable(String variableName) throws FaultException {
 		VariableInstance vi = _scopeFrame.resolve(getVisibleVariable(variableName));
-		return _context.fetchVariableData(vi, true);
+		return _context.fetchVariableData(vi, _scopeFrame, true);
 	}
 
 	public void writeVariable(OScope.Variable variable, Node value)
 			throws FaultException, ExternalVariableModuleException {
 		VariableInstance vi = _scopeFrame.resolve(variable);
-		_context.commitChanges(vi, value);
+		_context.commitChanges(vi, _scopeFrame, value);
         VariableModificationEvent vme = new VariableModificationEvent(variable.name);
         vme.setNewValue(value);
         sendEvent(vme);

Modified: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OScope.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OScope.java?rev=689531&r1=689530&r2=689531&view=diff
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OScope.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OScope.java Wed Aug 27 10:11:09 2008
@@ -170,8 +170,8 @@
             return "{CSet " + name + " " + properties + "}";
         }
 
-        public Set<PropertyAliasModel> getAliases(QName messageName) {
-            HashSet<PropertyAliasModel> aliases = new HashSet<PropertyAliasModel>();
+        public List<PropertyAliasModel> getAliases(QName messageName) {
+            List<PropertyAliasModel> aliases = new ArrayList<PropertyAliasModel>();
             OVarType messageType = getOwner().messageTypes.get(messageName);
             for (Object prop : properties) {
                 OProcess.OProperty property = (OProcess.OProperty) prop;

Modified: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/RuntimeInstanceImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/RuntimeInstanceImpl.java?rev=689531&r1=689530&r2=689531&view=diff
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/RuntimeInstanceImpl.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/RuntimeInstanceImpl.java Wed Aug 27 10:11:09 2008
@@ -126,11 +126,11 @@
         return _brc.readCorrelation(cset);
     }
 
-    public Node fetchVariableData(VariableInstance variable, boolean forWriting) throws FaultException {
+    public Node fetchVariableData(VariableInstance variable, ScopeFrame scopeFrame, boolean forWriting) 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.
-        	Element reference = (Element) _brc.fetchVariableData(variable, false);
+        	Element reference = (Element) _brc.fetchVariableData(scopeFrame.resolve(variable.declaration.extVar.related), false);
             try {
                 Node ret = _brc.readExtVar(variable, reference);
                 if (ret == null) {
@@ -168,8 +168,9 @@
         }
     }
 
-    public Node fetchVariableData(VariableInstance var, OMessageVarType.Part part, boolean forWriting) throws FaultException {
-        Node val = _brc.fetchVariableData(var, forWriting);
+    public Node fetchVariableData(VariableInstance var, ScopeFrame scopeFrame,
+                                  OMessageVarType.Part part, boolean forWriting) throws FaultException {
+        Node val = fetchVariableData(var, scopeFrame, forWriting);
         if (part != null) return getPartData((Element) val, part);
         return val;
     }
@@ -235,14 +236,14 @@
     /**
      * Proxy to {@link OdeRTInstanceContext#initializeVariable(Variable, Node)} then write properties.
      */
-    public Node initializeVariable(VariableInstance var, Node val) throws ExternalVariableModuleException {
+    public Node initializeVariable(VariableInstance var, ScopeFrame scopeFrame, Node val) throws ExternalVariableModuleException {
         try {
             if (var.declaration.extVar != null) /* external variable */ {
                 if (__log.isDebugEnabled())
                     __log.debug("Initialize external variable: name=" + var.declaration + " value="+DOMUtils.domToString(val));
                 Node reference = null;
                 try {
-                    reference = fetchVariableData(var, true);
+                    reference = fetchVariableData(var, scopeFrame, true);
                 } catch (FaultException fe) {
                     // In this context this is not necessarily a problem, since the assignment may re-init the related var
                 }
@@ -282,14 +283,26 @@
         return _brc.convertEndpointReference(epr, lvaluePtr);
     }
 
-    /**
-     * Proxy to {@link OdeRTInstanceContext#commitChanges(Variable, Node) }, then write variable properties.
-     */
-    public void commitChanges(VariableInstance lval, Node lvalue) {
-        _brc.commitChanges(lval, lvalue);
-        writeProperties(lval, lvalue);
+    public void commitChanges(VariableInstance var, ScopeFrame scopeFrame, Node value) throws ExternalVariableModuleException {
+        if (var.declaration.extVar != null) /* external variable */ {
+            __log.debug("Write external variable: name="+var.declaration + " value="+DOMUtils.domToString(value));
+            VariableInstance related = scopeFrame.resolve(var.declaration.extVar.related);
+            Node reference = null;
+            try {
+                reference = fetchVariableData(var, scopeFrame, true);
+            } catch (FaultException fe) {
+                // In this context this is not necessarily a problem, since the assignment may re-init the related var
+            }
+            VariableContext.ValueReferencePair vrp  = _brc.writeExtVar(var, reference, value);
+            commitChanges(related, scopeFrame, vrp.reference);
+        } else /* normal variable */ {
+            __log.debug("Write variable: name="+var.declaration + " value="+DOMUtils.domToString(value));
+            _brc.commitChanges(var, value);
+        }
+        writeProperties(var, value);
     }
 
+
     /**
      * Proxy to {@link BpelRuntimeContext# }.
      */
@@ -403,8 +416,7 @@
      * Proxy to {@link IOContext#getPartnerResponseType(String) }.
      */
     public QName getPartnerResponseType(String mexId) {
-        // TODO Auto-generated method stub
-        return null;
+        return _brc.getPartnerResponseType(mexId);
     }
 
     /**

Modified: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/SCOPEACT.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/SCOPEACT.java?rev=689531&r1=689530&r2=689531&view=diff
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/SCOPEACT.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/SCOPEACT.java Wed Aug 27 10:11:09 2008
@@ -59,7 +59,7 @@
         
         if (((OScope) _self.o).isolatedScope) {
             __log.debug("found ISOLATED scope, instance ISOLATEDGUARD");
-            instance(new ISOLATEDGUARD(createLockList(), newChannel(SynchChannel.class)));
+            instance(new ISOLATEDGUARD(createLockList(), newChannel(SynchChannel.class), _scopeFrame));
 
         } else {
             ScopeFrame newFrame = new ScopeFrame((OScope) _self.o, getBpelRuntime().createScopeInstance(
@@ -224,9 +224,10 @@
 
         final SynchChannel _synchChannel;
 
-        ISOLATEDGUARD(List<IsolationLock> locks, SynchChannel synchChannel) {
+        ISOLATEDGUARD(List<IsolationLock> locks, SynchChannel synchChannel, ScopeFrame scopeFrame) {
             _locksNeeded = locks;
             _synchChannel = synchChannel;
+            _scopeFrame = scopeFrame;
         }
 
         @Override

Modified: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath20/JaxpVariableResolver.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath20/JaxpVariableResolver.java?rev=689531&r1=689530&r2=689531&view=diff
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath20/JaxpVariableResolver.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath20/JaxpVariableResolver.java Wed Aug 27 10:11:09 2008
@@ -66,13 +66,12 @@
         OXPath10ExpressionBPEL20 expr = _oxpath;
         if(expr.isJoinExpression){
             OLink olink = _oxpath.links.get(variableName.getLocalPart());
-
             try {
                 return _ectx.isLinkActive(olink) ? Boolean.TRUE : Boolean.FALSE;
             } catch (FaultException e) {
                 throw new WrappedFaultException(e);
             }
-        }else{
+        } else {
             String varName;
             String partName;
             int dotloc = variableName.getLocalPart().indexOf('.');
@@ -102,7 +101,7 @@
                 // value
                 return new SingletonNodeList(variableNode);
                 
-            }catch(FaultException e){
+            } catch(FaultException e){
                 throw new WrappedFaultException(e);
             }
         }

Modified: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath20/WrappedFaultException.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath20/WrappedFaultException.java?rev=689531&r1=689530&r2=689531&view=diff
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath20/WrappedFaultException.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath20/WrappedFaultException.java Wed Aug 27 10:11:09 2008
@@ -12,11 +12,13 @@
     }
 
     public WrappedFaultException(FaultException message) {
+        super(message);
         _fault = message;
     }
 
     public WrappedFaultException(String message, FaultException cause) {
         super(message, cause);
+        _fault = cause;
     }
 
 }