Author: reschke
Date: Tue Apr  8 16:10:56 2014
New Revision: 1585770

URL: http://svn.apache.org/r1585770
Log:
OAK-1266 - improve diagnostics for failed updates

Modified:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java?rev=1585770&r1=1585769&r2=1585770&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
 Tue Apr  8 16:10:56 2014
@@ -344,6 +344,7 @@ public class RDBDocumentStore implements
                 oldDoc = readDocumentCached(collection, update.getId(), 
Integer.MAX_VALUE);
                 if (oldDoc == null) {
                     // something else went wrong
+                    LOG.error("insert failed, but document " + update.getId() 
+ " is not present, aborting", ex);
                     throw (ex);
                 }
                 return internalUpdate(collection, update, oldDoc, 
checkConditions, RETRIES);
@@ -355,13 +356,14 @@ public class RDBDocumentStore implements
 
     @CheckForNull
     private <T extends Document> T internalUpdate(Collection<T> collection, 
UpdateOp update, T oldDoc, boolean checkConditions,
-            int retries) {
+            int maxRetries) {
         T doc = applyChanges(collection, oldDoc, update, checkConditions);
         if (doc == null) {
             return null;
         } else {
             boolean success = false;
 
+            int retries = maxRetries;
             while (!success && retries > 0) {
                 success = updateDocument(collection, doc, (Long) 
oldDoc.get(MODCOUNT));
                 if (!success) {
@@ -378,7 +380,7 @@ public class RDBDocumentStore implements
             }
 
             if (!success) {
-                throw new MicroKernelException("failed update (race?)");
+                throw new MicroKernelException("failed update (race?) after " 
+ maxRetries + " retries");
             }
 
             return oldDoc;


Reply via email to