Author: karthick
Date: Wed Feb 18 21:31:54 2009
New Revision: 745666

URL: http://svn.apache.org/viewvc?rev=745666&view=rev
Log: (empty)

Modified:
    
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/CorrelatorDaoImpl.java
    
ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CorrelatorDaoImpl.java
    
ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/CorrelatorDAOImpl.java

Modified: 
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/CorrelatorDaoImpl.java
URL: 
http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/CorrelatorDaoImpl.java?rev=745666&r1=745665&r2=745666&view=diff
==============================================================================
--- 
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/CorrelatorDaoImpl.java
 (original)
+++ 
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/CorrelatorDaoImpl.java
 Wed Feb 18 21:31:54 2009
@@ -73,13 +73,19 @@
         if (__log.isDebugEnabled()) {
             __log.debug("findRoute: keySet=" + keySet);
         }
-        List<ProcessInstanceDAO> targets = new ArrayList<ProcessInstanceDAO>();
-        for (MessageRouteDaoImpl we : _routes) {
-            assert we._ckeySet != null;
-
-            if( !targets.contains(we.getTargetInstance()) && 
keySet.isRoutableTo(we._ckeySet, "all".equals(we.getRoute())) ) {
-                routes.add(we);
-                targets.add(we.getTargetInstance());
+        boolean routed = false;
+        for (MessageRouteDaoImpl route : _routes) {
+            assert route._ckeySet != null;
+            
+            if(keySet.isRoutableTo(route._ckeySet, 
"all".equals(route.getRoute()))) {
+               if ("all".equals(route.getRoute()))  {
+                       routes.add(route);
+               } else {
+                       if (!routed) {
+                               routes.add(route);
+                       }
+                       routed = true;
+               }
             }
         }
 

Modified: 
ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CorrelatorDaoImpl.java
URL: 
http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CorrelatorDaoImpl.java?rev=745666&r1=745665&r2=745666&view=diff
==============================================================================
--- 
ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CorrelatorDaoImpl.java
 (original)
+++ 
ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CorrelatorDaoImpl.java
 Wed Feb 18 21:31:54 2009
@@ -30,6 +30,7 @@
 import org.apache.ode.daohib.bpel.hobj.HCorrelatorMessage;
 import org.apache.ode.daohib.bpel.hobj.HCorrelatorSelector;
 import org.apache.ode.daohib.bpel.hobj.HMessageExchange;
+import org.apache.ode.daohib.bpel.hobj.HProcess;
 import org.apache.ode.daohib.bpel.hobj.HProcessInstance;
 import org.hibernate.Hibernate;
 import org.hibernate.LockMode;
@@ -127,15 +128,18 @@
 
             HCorrelatorSelector selector;
             try {
-               List<HProcessInstance> targets = new 
ArrayList<HProcessInstance>();
+               boolean routed = false;
                Iterator selectors = q.iterate();
                while (selectors.hasNext()) {
                     selector = (HCorrelatorSelector) selectors.next();
                     if (selector != null) {
-                       if ("all".equals(selector.getRoute()) ||
-                                       (!"all".equals(selector.getRoute()) && 
!targets.contains(selector.getInstance()))) {
+                       if ("all".equals(selector.getRoute())) {
                                routes.add(new MessageRouteDaoImpl(_sm, 
selector));
-                               targets.add(selector.getInstance());
+                       } else {
+                               if (!routed){
+                               routes.add(new MessageRouteDaoImpl(_sm, 
selector));
+                               }
+                               routed = true;
                        }
                     }
                }

Modified: 
ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/CorrelatorDAOImpl.java
URL: 
http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/CorrelatorDAOImpl.java?rev=745666&r1=745665&r2=745666&view=diff
==============================================================================
--- 
ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/CorrelatorDAOImpl.java
 (original)
+++ 
ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/CorrelatorDAOImpl.java
 Wed Feb 18 21:31:54 2009
@@ -98,14 +98,24 @@
        
         List<MessageRouteDAO> routes = (List<MessageRouteDAO>) 
qry.getResultList();
         if (routes.size() > 0) {
-               List<ProcessInstanceDAO> targets = new 
ArrayList<ProcessInstanceDAO>();
+               List<MessageRouteDAO> nonRoutes = new 
ArrayList<MessageRouteDAO>();
+               boolean routed = false;
             for (int i = 0; i < routes.size(); i++) {
                MessageRouteDAO route = routes.get(i);
-               if ("all".equals(route.getRoute()) ||
-                               (!"all".equals(route.getRoute()) && 
!targets.contains(route.getTargetInstance()))) {
-                       targets.add(route.getTargetInstance());
+               if ("all".equals(route.getRoute())) {
+                       // don't try to remove this route 
+               } else {
+                       if (routed) {
+                               nonRoutes.add(route);
+                       } else {
+                               // don't try to remove this route 
+                       }
+                               routed = true;
                }
             }
+            if (!nonRoutes.isEmpty()) {
+                   routes.removeAll(nonRoutes);
+            }
             return routes;
         } else {
                return null;


Reply via email to