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