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));
     }
 }


Reply via email to