You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by sa...@apache.org on 2016/02/17 21:54:33 UTC

ode git commit: ODE-974: Match the CorrelationSet in enqueued message with actual CorrelationSet defined for the IMA

Repository: ode
Updated Branches:
  refs/heads/ode-1.3.x a56446717 -> fd90d7194


ODE-974: Match the CorrelationSet in enqueued message with actual CorrelationSet defined for the IMA


Project: http://git-wip-us.apache.org/repos/asf/ode/repo
Commit: http://git-wip-us.apache.org/repos/asf/ode/commit/fd90d719
Tree: http://git-wip-us.apache.org/repos/asf/ode/tree/fd90d719
Diff: http://git-wip-us.apache.org/repos/asf/ode/diff/fd90d719

Branch: refs/heads/ode-1.3.x
Commit: fd90d719487c5dab48bed05207b8c25deeea8e45
Parents: a564467
Author: sathwik <sa...@apache.org>
Authored: Thu Feb 18 02:24:13 2016 +0530
Committer: sathwik <sa...@apache.org>
Committed: Thu Feb 18 02:24:13 2016 +0530

----------------------------------------------------------------------
 .../ode/daohib/bpel/CorrelatorDaoImpl.java      | 26 ++++++++++++++------
 1 file changed, 18 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ode/blob/fd90d719/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CorrelatorDaoImpl.java
----------------------------------------------------------------------
diff --git a/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CorrelatorDaoImpl.java b/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CorrelatorDaoImpl.java
index 11aaf6b..3f530cf 100644
--- a/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CorrelatorDaoImpl.java
+++ b/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CorrelatorDaoImpl.java
@@ -71,9 +71,9 @@ class CorrelatorDaoImpl extends HibernateDao implements CorrelatorDAO {
         entering("CorrelatorDaoImpl.dequeueMessage");
 
         MessageExchangeDAO mex = null;
+        CorrelationKeySet keyInLoop;
 
-        String hdr = "dequeueMessage(" + keySet + "): ";
-        __log.debug(hdr);
+        __log.debug("dequeueMessage({}): ",keySet);
 
         List<CorrelationKeySet> subSets = keySet.findSubSets();
         Query qry = getSession().createFilter(_hobj.getMessageCorrelations(),
@@ -93,13 +93,23 @@ class CorrelatorDaoImpl extends HibernateDao implements CorrelatorDAO {
         }
         try {
             if (!mcors.hasNext()) {
-                if (__log.isDebugEnabled())
-                    __log.debug(hdr + "did not find a MESSAGE entry.");
+                __log.debug("dequeueMessage({}): did not find a MESSAGE entry.",keySet);
             } else {
-                HCorrelatorMessage mcor = (HCorrelatorMessage) mcors.next();
-                if (__log.isDebugEnabled())
-                    __log.debug(hdr + "found MESSAGE entry " + mcor.getMessageExchange());
-                mex = new MessageExchangeDaoImpl(_sm, mcor.getMessageExchange());
+                boolean keysNotMatched = true;
+
+                for( ; mcors.hasNext() && keysNotMatched ; ) {
+                    HCorrelatorMessage mcor = (HCorrelatorMessage) mcors.next();
+                    keyInLoop = new CorrelationKeySet(mcor.getCorrelationKey());
+
+                    __log.debug("KeySet in enqueued message is {} and KeySet to be dequeued {}",keyInLoop,keySet);
+
+                    if(keyInLoop.isRoutableTo(keySet, false)) {
+                        __log.debug("dequeueMessage({}): found MESSAGE entry {}", keySet, mcor.getMessageExchange());
+
+                        mex = new MessageExchangeDaoImpl(_sm, mcor.getMessageExchange());
+                        keysNotMatched = false;
+                    }
+                }
             }
         } finally {
             Hibernate.close(mcors);