You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by re...@apache.org on 2018/03/09 12:51:47 UTC

svn commit: r1826343 - in /jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb: RDBDocumentStore.java RDBJDBCTools.java

Author: reschke
Date: Fri Mar  9 12:51:47 2018
New Revision: 1826343

URL: http://svn.apache.org/viewvc?rev=1826343&view=rev
Log:
OAK-7307: RDBDocumentStore: use transient DocumentStoreException type where appropriate

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

Modified: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java?rev=1826343&r1=1826342&r2=1826343&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java Fri Mar  9 12:51:47 2018
@@ -1509,7 +1509,8 @@ public class RDBDocumentStore implements
             if (allowCreate && result == null) {
                 // TODO OAK-2655 need to implement some kind of retry
                 LOG.error("update of " + update.getId() + " failed, race condition?");
-                throw new DocumentStoreException("update of " + update.getId() + " failed, race condition?");
+                throw new DocumentStoreException("update of " + update.getId() + " failed, race condition?", null,
+                        DocumentStoreException.Type.TRANSIENT);
             }
             return result;
         }
@@ -1568,7 +1569,7 @@ public class RDBDocumentStore implements
 
                 if (!success) {
                     throw new DocumentStoreException("failed update of " + doc.getId() + " (race?) after " + maxRetries
-                            + " retries");
+                            + " retries", null, DocumentStoreException.Type.TRANSIENT);
                 }
 
                 return oldDoc;

Modified: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBJDBCTools.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBJDBCTools.java?rev=1826343&r1=1826342&r2=1826343&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBJDBCTools.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBJDBCTools.java Fri Mar  9 12:51:47 2018
@@ -26,6 +26,7 @@ import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.ResultSetMetaData;
 import java.sql.SQLException;
+import java.sql.SQLTransientException;
 import java.sql.Statement;
 import java.sql.Types;
 import java.util.ArrayList;
@@ -426,7 +427,11 @@ public class RDBJDBCTools {
         };
     }
     
+    private static DocumentStoreException.Type exceptionTypeFor(Exception cause) {
+        return (cause instanceof SQLTransientException) ? DocumentStoreException.Type.TRANSIENT : DocumentStoreException.Type.GENERIC;
+    }
+    
     public static DocumentStoreException asDocumentStoreException(@Nonnull Exception cause, @Nonnull String message) {
-        return new DocumentStoreException(message, cause);
+        return new DocumentStoreException(message, cause, exceptionTypeFor(cause));
     }
 }