Author: mckierna
Date: Tue Sep  9 07:28:20 2008
New Revision: 693469

URL: http://svn.apache.org/viewvc?rev=693469&view=rev
Log:
Do not enlist beans when transaction is not active (see SANDESHA2-177)

Modified:
    
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryTransaction.java

Modified: 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryTransaction.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryTransaction.java?rev=693469&r1=693468&r2=693469&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryTransaction.java
 (original)
+++ 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryTransaction.java
 Tue Sep  9 07:28:20 2008
@@ -26,6 +26,8 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.sandesha2.i18n.SandeshaMessageHelper;
+import org.apache.sandesha2.i18n.SandeshaMessageKeys;
 import org.apache.sandesha2.storage.SandeshaStorageException;
 import org.apache.sandesha2.storage.Transaction;
 import org.apache.sandesha2.storage.beans.RMBean;
@@ -92,7 +94,8 @@
        
        public void enlist(RMBean bean) {
                if(LoggingControl.isAnyTracingEnabled() && 
log.isDebugEnabled()) log.debug("Entry: InMemoryTransaction::enlist, " + bean);
-               if (bean != null) {
+               if(isActive()){
+                 if (bean != null) {
                        DummyTransaction tran = null;
                        synchronized (bean) {
                                tran = (DummyTransaction) bean.getTransaction();
@@ -122,7 +125,12 @@
 
                        }
                }
-               
+       } else {
+               String message = 
SandeshaMessageHelper.getMessage(SandeshaMessageKeys.noTransaction);
+               IllegalStateException e = new IllegalStateException(message);
+               if(LoggingControl.isAnyTracingEnabled() && 
log.isDebugEnabled()) log.debug("An attempt to enlist new work to an 
InMemoryTransaction that has previously been committed or rolled back.", e);
+               throw e;
+       }
                if(LoggingControl.isAnyTracingEnabled() && 
log.isDebugEnabled()) log.debug("Exit: InMemoryTransaction::enlist");
        }
        
@@ -170,3 +178,4 @@
 
 
 
+



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to