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


Reply via email to