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