[jbpm-commits] JBoss JBPM SVN: r4966 - jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/tx.

do-not-reply at jboss.org do-not-reply at jboss.org
Sun May 31 06:21:35 EDT 2009


Author: ainze
Date: 2009-05-31 06:21:34 -0400 (Sun, 31 May 2009)
New Revision: 4966

Modified:
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/tx/SpringTransactionInterceptor.java
Log:
standard transaction is not required

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/tx/SpringTransactionInterceptor.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/tx/SpringTransactionInterceptor.java	2009-05-31 08:49:11 UTC (rev 4965)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/tx/SpringTransactionInterceptor.java	2009-05-31 10:21:34 UTC (rev 4966)
@@ -43,7 +43,7 @@
 public class SpringTransactionInterceptor extends Interceptor {
 
   private static final Log log = Log.getLog(SpringTransactionInterceptor.class.getName());
-  
+
   private boolean useCurrent;
 
   @SuppressWarnings("unchecked")
@@ -54,21 +54,19 @@
     }
 
     StandardTransaction standardTransaction = environment.get(StandardTransaction.class);
-    if (standardTransaction == null) {
-      throw new JbpmException("no standard-transaction in environment");
-    }
 
     PlatformTransactionManager platformTransactionManager = environment.get(PlatformTransactionManager.class);
     if (platformTransactionManager == null) {
       throw new JbpmException("No platformTransaction manager defined.");
     }
-    
-    
-    standardTransaction.begin();
 
+    if (standardTransaction != null) {
+      standardTransaction.begin();
+    }
+
     try {
       DefaultTransactionDefinition definition = new DefaultTransactionDefinition();
-      
+
       if (useCurrent) {
         definition.setPropagationBehavior(TransactionDefinition.PROPAGATION_MANDATORY);
       }
@@ -76,16 +74,20 @@
       TransactionTemplate template = new TransactionTemplate(platformTransactionManager, definition);
       TransactionCallback transactionCallback = new CommandTransactionCallback<T>(command, next, platformTransactionManager);
       T t = (T) template.execute(transactionCallback);
-      
+
       Session session = environment.get(Session.class);
       session.flush();
       return t;
     } catch (RuntimeException e) {
-      standardTransaction.setRollbackOnly();
+      if (standardTransaction != null) {
+        standardTransaction.setRollbackOnly();
+      }
       throw e;
 
     } finally {
-      standardTransaction.complete();
+      if (standardTransaction != null) {
+        standardTransaction.complete();
+      }
     }
   }
 




More information about the jbpm-commits mailing list