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