mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged V3.2 to HEAD
15341: Update svn:mergeinfo 15220: NestedSQLException containing causal exceptions with word "deadlock" will trigger a retry Added "constraint" search as part of the merge 15565: Update svn:mergeinfo 15569: Merge 3.1 to 3.2: 15231: Fix for cut/paste file between folders on CIFS. ETHREEOH-2323, + ENH-515. (Record only) ___________________________________________________________________ Modified: svn:mergeinfo Merged /alfresco/BRANCHES/V3.1:r14561-14562,14922,15155,15233-15234,15258,15326 Merged /alfresco/BRANCHES/V3.2:r15231,15341,15520,15565,15569 git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@16857 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -101,6 +101,7 @@ public class RetryingTransactionHelper
|
|||||||
ConstraintViolationException.class,
|
ConstraintViolationException.class,
|
||||||
UncategorizedSQLException.class,
|
UncategorizedSQLException.class,
|
||||||
SQLException.class,
|
SQLException.class,
|
||||||
|
NestedSQLException.class,
|
||||||
BatchUpdateException.class,
|
BatchUpdateException.class,
|
||||||
DataIntegrityViolationException.class,
|
DataIntegrityViolationException.class,
|
||||||
StaleStateException.class,
|
StaleStateException.class,
|
||||||
@@ -479,6 +480,17 @@ public class RetryingTransactionHelper
|
|||||||
{
|
{
|
||||||
// We dig further into this
|
// We dig further into this
|
||||||
cause = retryCause.getCause();
|
cause = retryCause.getCause();
|
||||||
|
// Check for SQL-related "deadlock" messages
|
||||||
|
if (retryCause.getMessage().toLowerCase().contains("deadlock"))
|
||||||
|
{
|
||||||
|
// The word "deadlock" is usually an indication that we need to resolve with a retry.
|
||||||
|
return retryCause;
|
||||||
|
}
|
||||||
|
else if (retryCause.getMessage().toLowerCase().contains("constraint"))
|
||||||
|
{
|
||||||
|
// The word "constraint" is also usually an indication or a concurrent update
|
||||||
|
return retryCause;
|
||||||
|
}
|
||||||
// Recurse
|
// Recurse
|
||||||
return extractRetryCause(cause);
|
return extractRetryCause(cause);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user