You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by va...@apache.org on 2010/02/12 23:40:17 UTC

svn commit: r909643 - /ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CorrelatorDaoImpl.java

Author: vanto
Date: Fri Feb 12 22:40:16 2010
New Revision: 909643

URL: http://svn.apache.org/viewvc?rev=909643&view=rev
Log:
ODE-769: fixing a potential race condition

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

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=909643&r1=909642&r2=909643&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 Fri Feb 12 22:40:16 2010
@@ -134,6 +134,13 @@
 
         if(__log.isDebugEnabled()) __log.debug(hdr + "found " + routes);
 
+        // obtain a lock on the correlator to eliminate potential race condition.
+        if(__log.isDebugEnabled()) __log.debug("Obtain record lock on " + _hobj);
+        Query correlatorLockQuery = getSession().createQuery("from HCorrelator as hc where id = :id");
+        correlatorLockQuery.setLong("id", _hobj.getId());
+        correlatorLockQuery.setLockMode("hc", LockMode.UPGRADE);
+        correlatorLockQuery.list();
+
         return routes;
     }