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);
