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)