Author: doogie
Date: Tue May 14 18:09:38 2013
New Revision: 1482509

URL: http://svn.apache.org/r1482509
Log:
FEATURE: In NoTransaction.call, completely unwrap all nested exceptions, and 
re-wrap the innermost one. This is just like InTransaction.call.

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

Modified: 
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/transaction/TransactionUtil.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/transaction/TransactionUtil.java?rev=1482509&r1=1482508&r2=1482509&view=diff
==============================================================================
--- 
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/transaction/TransactionUtil.java
 (original)
+++ 
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/transaction/TransactionUtil.java
 Tue May 14 18:09:38 2013
@@ -973,15 +973,22 @@ public class TransactionUtil implements 
         public V call() throws GenericEntityException {
             Transaction suspended = TransactionUtil.suspend();
             try {
-                return callable.call();
+                try {
+                    return callable.call();
+                } catch (Throwable t) {
+                    while (t.getCause() != null) {
+                        t = t.getCause();
+                    }
+                    throw t;
+                }
+            } catch (GenericEntityException e) {
+                throw e;
             } catch (Error e) {
                 throw e;
             } catch (RuntimeException e) {
                 throw e;
-            } catch (GenericEntityException e) {
-                throw e;
-            } catch (Exception e) {
-                throw new GenericEntityException(e);
+            } catch (Throwable t) {
+                throw new GenericEntityException(t);
             } finally {
                 TransactionUtil.resume(suspended);
             }


Reply via email to