You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jo...@apache.org on 2007/07/27 10:56:18 UTC

svn commit: r560155 - /ofbiz/trunk/framework/entity/src/org/ofbiz/entity/transaction/GenericXaResource.java

Author: jonesde
Date: Fri Jul 27 01:56:17 2007
New Revision: 560155

URL: http://svn.apache.org/viewvc?view=rev&rev=560155
Log:
Changed to not warn about transaction timeout if not timeout is passed to this object

Modified:
    ofbiz/trunk/framework/entity/src/org/ofbiz/entity/transaction/GenericXaResource.java

Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/transaction/GenericXaResource.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/transaction/GenericXaResource.java?view=diff&rev=560155&r1=560154&r2=560155
==============================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/transaction/GenericXaResource.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/transaction/GenericXaResource.java Fri Jul 27 01:56:17 2007
@@ -34,7 +34,8 @@
 
     protected Transaction trans = null;
     protected boolean active = false;
-    protected int timeout = 30;
+    /** timeout is an Integer and defaults to null so that we know if it is set on this object; if it isn't set we won't worry about the warning message, etc because we don't know what the real timeout is */
+    protected Integer timeout = null;
     protected Xid xid = null;
 
     /**
@@ -144,7 +145,7 @@
      * @see javax.transaction.xa.XAResource#getTransactionTimeout()
      */
     public int getTransactionTimeout() throws XAException {
-        return this.timeout;
+        return this.timeout == null ? 0 : this.timeout.intValue();
     }
 
     /**
@@ -152,7 +153,7 @@
      * Note: the valus is saved but in the current implementation this is not used.
      */
     public boolean setTransactionTimeout(int seconds) throws XAException {
-        this.timeout = seconds == 0 ? 30 : seconds;
+        this.timeout = (seconds == 0 ? null : new Integer(seconds));
         return true;
     }
 
@@ -187,26 +188,28 @@
     // thread run method
     public void run() {
         try {
-            // sleep until the transaction times out
-            sleep(timeout * 1000);
-
-            if (active) {
-                // get the current status
-                int status = Status.STATUS_UNKNOWN;
-                if (trans != null) {
-                    try {
-                        status = trans.getStatus();
-                    } catch (SystemException e) {
-                        Debug.logWarning(e, module);
+            if (timeout != null) {
+                // sleep until the transaction times out
+                sleep(timeout.intValue() * 1000);
+
+                if (active) {
+                    // get the current status
+                    int status = Status.STATUS_UNKNOWN;
+                    if (trans != null) {
+                        try {
+                            status = trans.getStatus();
+                        } catch (SystemException e) {
+                            Debug.logWarning(e, module);
+                        }
                     }
-                }
 
-                // log a warning message
-                String statusString = TransactionUtil.getTransactionStateString(status);
-                Debug.logWarning("Transaction timeout [" + timeout + "] Status: " + statusString + " Xid: " + getXid(), module);
+                    // log a warning message
+                    String statusString = TransactionUtil.getTransactionStateString(status);
+                    Debug.logWarning("Transaction timeout [" + timeout + "] Status: " + statusString + " Xid: " + getXid(), module);
 
-                // run the abstract method
-                runOnTimeout();
+                    // run the abstract method
+                    runOnTimeout();
+                }
             }
         } catch (InterruptedException e) {
             Debug.logWarning(e, "InterruptedException thrown", module);