From fdb092052e0d778c2485ae789cf51c1a1a67dafa Mon Sep 17 00:00:00 2001 From: Britt Park Date: Fri, 15 Dec 2006 17:41:38 +0000 Subject: [PATCH] A little bit of defensive programming I left out. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@4621 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../alfresco/repo/transaction/RetryingTransactionAdvice.java | 5 +++++ .../alfresco/repo/transaction/RetryingTransactionHelper.java | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/source/java/org/alfresco/repo/transaction/RetryingTransactionAdvice.java b/source/java/org/alfresco/repo/transaction/RetryingTransactionAdvice.java index 1c75af998b..8491d58bd6 100644 --- a/source/java/org/alfresco/repo/transaction/RetryingTransactionAdvice.java +++ b/source/java/org/alfresco/repo/transaction/RetryingTransactionAdvice.java @@ -134,6 +134,11 @@ public class RetryingTransactionAdvice implements MethodInterceptor } break; } + // Apparently java.lang.Throwable default the cause as 'this'. + if (t == t.getCause()) + { + break; + } t = t.getCause(); } if (shouldRetry) diff --git a/source/java/org/alfresco/repo/transaction/RetryingTransactionHelper.java b/source/java/org/alfresco/repo/transaction/RetryingTransactionHelper.java index 38ecf1cc9b..271b065f57 100644 --- a/source/java/org/alfresco/repo/transaction/RetryingTransactionHelper.java +++ b/source/java/org/alfresco/repo/transaction/RetryingTransactionHelper.java @@ -183,6 +183,10 @@ public class RetryingTransactionHelper } break; } + if (t == t.getCause()) + { + break; + } t = t.getCause(); } if (shouldRetry)