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 <[email protected]>
Authored: Thu Feb 18 02:24:13 2016 +0530
Committer: sathwik <[email protected]>
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);

Reply via email to