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/02/18 22:31:55 UTC

svn commit: r745666 - in /ode/branches/APACHE_ODE_1.X: bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/ dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ dao-jpa/src/main/java/org/apache/ode/dao/jpa/

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;