You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jl...@apache.org on 2017/08/13 19:20:14 UTC

svn commit: r1804940 - /ofbiz/ofbiz-framework/trunk/framework/service/src/main/java/org/apache/ofbiz/service/semaphore/ServiceSemaphore.java

Author: jleroux
Date: Sun Aug 13 19:20:14 2017
New Revision: 1804940

URL: http://svn.apache.org/viewvc?rev=1804940&view=rev
Log:
Implemented: ServiceSemaphore: Check for Transaction before suspending it in 
dbWrite(...)
(OFBIZ-9401)

In ServiceSemaphore.dbWrite(...) the transaction is suspended without checking 
if there is a transaction in place. This results in logging a warning each time 
the TransactionUtil.suspend() method is invoked without a current transaction in
 place. The given patch cuts this unnecessary logging by checking if there is an
 transaction in place to suspend. If a transaction exists - suspend it.

Thanks: Martin Becker

Modified:
    ofbiz/ofbiz-framework/trunk/framework/service/src/main/java/org/apache/ofbiz/service/semaphore/ServiceSemaphore.java

Modified: ofbiz/ofbiz-framework/trunk/framework/service/src/main/java/org/apache/ofbiz/service/semaphore/ServiceSemaphore.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/service/src/main/java/org/apache/ofbiz/service/semaphore/ServiceSemaphore.java?rev=1804940&r1=1804939&r2=1804940&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/service/src/main/java/org/apache/ofbiz/service/semaphore/ServiceSemaphore.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/service/src/main/java/org/apache/ofbiz/service/semaphore/ServiceSemaphore.java Sun Aug 13 19:20:14 2017
@@ -146,7 +146,9 @@ public class ServiceSemaphore {
 
         try {
             // prepare the suspended transaction
-            parent = TransactionUtil.suspend();
+            if (TransactionUtil.isTransactionInPlace()) {
+                parent = TransactionUtil.suspend();
+            }
             beganTx = TransactionUtil.begin();
             if (!beganTx) {
                 throw new SemaphoreFailException("Cannot obtain unique transaction for semaphore logging");