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