Author: kwright
Date: Mon Dec 10 07:43:32 2012
New Revision: 1419249

URL: http://svn.apache.org/viewvc?rev=1419249&view=rev
Log:
Fix for CONNECTORS-583.

Modified:
    manifoldcf/trunk/CHANGES.txt
    
manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfaceMySQL.java

Modified: manifoldcf/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/CHANGES.txt?rev=1419249&r1=1419248&r2=1419249&view=diff
==============================================================================
--- manifoldcf/trunk/CHANGES.txt (original)
+++ manifoldcf/trunk/CHANGES.txt Mon Dec 10 07:43:32 2012
@@ -3,6 +3,9 @@ $Id$
 
 ======================= 1.1-dev =====================
 
+CONNECTORS-583: Catch MySQL lock timeout, and retry that transaction.
+(Shigeki Kobayashi, Karl Wright)
+
 CONNECTORS-581: Port OpenSearchServer connector and ElasticSearch
 connector to httpcomponents.
 (Karl Wright)

Modified: 
manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfaceMySQL.java
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfaceMySQL.java?rev=1419249&r1=1419248&r2=1419249&view=diff
==============================================================================
--- 
manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfaceMySQL.java
 (original)
+++ 
manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfaceMySQL.java
 Mon Dec 10 07:43:32 2012
@@ -118,6 +118,12 @@ public class DBInterfaceMySQL extends Da
       //new Exception(message).printStackTrace();
       return new 
ManifoldCFException(message,e,ManifoldCFException.DATABASE_TRANSACTION_ABORT);
     }
+    // Lock timeout
+    if (sqlState != null && sqlState.equals("41000"))
+    {
+      //new Exception(message).printStackTrace();
+      return new 
ManifoldCFException(message,e,ManifoldCFException.DATABASE_TRANSACTION_ABORT);
+    }
     // Note well: We also have to treat 'duplicate key' as a transaction 
abort, since this is what you get when two threads attempt to
     // insert the same row.  (Everything only works, then, as long as there is 
a unique constraint corresponding to every bad insert that
     // one could make.)


Reply via email to