Author: karthick
Date: Fri Jan  9 11:56:21 2009
New Revision: 733138

URL: http://svn.apache.org/viewvc?rev=733138&view=rev
Log:
ODE-478 Observe Correlation Consistency Constraint On Initiate

Modified:
    
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/BpelJacobRunnable.java
    ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/REPLY.java

Modified: 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/BpelJacobRunnable.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/BpelJacobRunnable.java?rev=733138&r1=733137&r2=733138&view=diff
==============================================================================
--- 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/BpelJacobRunnable.java
 (original)
+++ 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/BpelJacobRunnable.java
 Fri Jan  9 11:56:21 2009
@@ -81,7 +81,7 @@
         if (getBpelRuntime().isCorrelationInitialized(cset)) {
           // if already set, we ignore
             if (__log.isDebugEnabled()) __log.debug("OCorrelation set " + cset 
+ " is already set: ignoring");
-            return;
+            throw new 
FaultException(cset.declaration.getOwner().constants.qnCorrelationViolation);
         }
 
         String[] propNames = new String[cset.declaration.properties.size()];

Modified: 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/REPLY.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/REPLY.java?rev=733138&r1=733137&r2=733138&view=diff
==============================================================================
--- ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/REPLY.java 
(original)
+++ ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/REPLY.java 
Fri Jan  9 11:56:21 2009
@@ -43,11 +43,12 @@
         }
 
         FaultData fault = null;
+        Node msg = null;
         try {
             if (oreply.variable != null)
                 sendVariableReadEvent(_scopeFrame.resolve(oreply.variable));
 
-            Node msg = oreply.variable == null ? null :
+            msg = oreply.variable == null ? null :
                     fetchVariableData(_scopeFrame.resolve(oreply.variable), 
false);
 
             assert msg == null || msg instanceof Element; // note msg can be 
null for faults 
@@ -61,6 +62,12 @@
         } catch (FaultException e) {
             __log.error(e);
             fault = createFault(e.getQName(), oreply);
+            try {
+                   
getBpelRuntime().reply(_scopeFrame.resolve(oreply.partnerLink), 
oreply.operation.getName(),
+                           oreply.messageExchangeId, (Element)msg, 
e.getQName());
+            } catch (FaultException fe) {
+                fault = createFault(e.getQName(), oreply);
+            }
         }
 
         _self.parent.completed(fault, CompensationHandler.emptySet());


Reply via email to