[jboss-svn-commits] JBL Code SVN: r34969 - labs/jbossrules/branches/diega_esteban_jpm_integration_r34940/drools-persistence-jpa/src/main/java/org/drools/persistence/session.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Sep 1 23:01:15 EDT 2010


Author: diegoll
Date: 2010-09-01 23:01:14 -0400 (Wed, 01 Sep 2010)
New Revision: 34969

Modified:
   labs/jbossrules/branches/diega_esteban_jpm_integration_r34940/drools-persistence-jpa/src/main/java/org/drools/persistence/session/SingleSessionCommandService.java
Log:
[JBRULES-2656] fixed

Modified: labs/jbossrules/branches/diega_esteban_jpm_integration_r34940/drools-persistence-jpa/src/main/java/org/drools/persistence/session/SingleSessionCommandService.java
===================================================================
--- labs/jbossrules/branches/diega_esteban_jpm_integration_r34940/drools-persistence-jpa/src/main/java/org/drools/persistence/session/SingleSessionCommandService.java	2010-09-01 21:33:07 UTC (rev 34968)
+++ labs/jbossrules/branches/diega_esteban_jpm_integration_r34940/drools-persistence-jpa/src/main/java/org/drools/persistence/session/SingleSessionCommandService.java	2010-09-02 03:01:14 UTC (rev 34969)
@@ -35,7 +35,7 @@
     implements
     org.drools.command.SingleSessionCommandService {
     
-    Logger                               logger                                            = LoggerFactory.getLogger( getClass() );    
+    Logger                               logger                                            = LoggerFactory.getLogger(SingleSessionCommandService.class);    
 
     private SessionInfo                 sessionInfo;
     private JPASessionMarshallingHelper marshallingHelper;
@@ -278,21 +278,19 @@
             //this.appScopedEntityManager.joinTransaction();
             registerRollbackSync();
 
+            logger.debug("Executing [{}] command", command.getClass().getSimpleName());
             T result = ((GenericCommand<T>) command).execute( this.kContext );
 
             txm.commit();
 
             return result;
 
+        }catch (RuntimeException re){
+            rollbackTransaction(re);
+            throw re;
         } catch ( Exception t1 ) {
-            try {
-                txm.rollback();
-            } catch ( Exception t2 ) {
-                throw new RuntimeException( "Could not commit session or rollback",
-                                            t2 );
-            }
-            throw new RuntimeException( "Could not commit session",
-                                        t1 );
+            rollbackTransaction(t1);
+            throw new RuntimeException("Wrapped exception see cause", t1);
         } finally {
             if ( command instanceof DisposeCommand ) {
                 this.jpm.dispose();
@@ -300,6 +298,15 @@
         }
     }
 
+    private void rollbackTransaction(Exception t1) {
+        try {
+            txm.rollback();
+        } catch ( Exception t2 ) {
+            logger.error("Could not commit session or rollback. Original exception:",t1);
+            throw new RuntimeException( "Could not commit session or rollback", t2 );
+        }
+    }
+
     public void dispose() {
         if ( ksession != null ) {
             ksession.dispose();



More information about the jboss-svn-commits mailing list