[jboss-svn-commits] JBL Code SVN: r34707 - labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/src/main/java/org/drools/timer/persistence.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Aug 13 08:47:07 EDT 2010


Author: diegoll
Date: 2010-08-13 08:47:06 -0400 (Fri, 13 Aug 2010)
New Revision: 34707

Modified:
   labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/src/main/java/org/drools/timer/persistence/JPATimerPersistence.java
Log:
[JBRULES-2616] opening tx on delete. Test passing

Modified: labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/src/main/java/org/drools/timer/persistence/JPATimerPersistence.java
===================================================================
--- labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/src/main/java/org/drools/timer/persistence/JPATimerPersistence.java	2010-08-13 11:37:57 UTC (rev 34706)
+++ labs/jbossrules/branches/5_1_20100802_esteban_diega/drools-process/drools-persistent-timer/drools-timer-persistence/src/main/java/org/drools/timer/persistence/JPATimerPersistence.java	2010-08-13 12:47:06 UTC (rev 34707)
@@ -2,6 +2,7 @@
 
 import javax.persistence.EntityManager;
 import javax.persistence.EntityManagerFactory;
+import javax.persistence.EntityTransaction;
 import javax.persistence.NoResultException;
 
 import org.drools.timer.persistence.model.TimerState;
@@ -35,11 +36,20 @@
 	}
 
 	public boolean remove(long processInstanceId) {
-	    boolean removed = getEntityManager().createQuery("delete TimerState where processInstanceId=:processId")
-               .setParameter("processId", processInstanceId)
-               .executeUpdate() == 1;
-	    logger.debug("Removing timer for process instance " + processInstanceId);
-        return removed;
+	    EntityManager entityManager = getEntityManager();
+	    try{
+	        EntityTransaction transaction = entityManager.getTransaction();
+            transaction.begin();
+            boolean removed = entityManager.createQuery("delete TimerState where processInstanceId=:processId")
+                   .setParameter("processId", processInstanceId)
+                   .executeUpdate() == 1;
+            transaction.commit();
+    	    logger.debug("Removed timer for process instance " + processInstanceId);
+    	    return removed;
+	    } catch (RuntimeException e) {
+	        logger.error("Error removing timer", e);
+	        throw e;
+	    }
 	}
 
     private EntityManager getEntityManager(){



More information about the jboss-svn-commits mailing list