Author: reschke
Date: Fri Mar 9 10:54:46 2018
New Revision: 1826325
URL: http://svn.apache.org/viewvc?rev=1826325&view=rev
Log:
OAK-7324: RDBDocumentStore: Refactor exception handling
Modified:
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentSerializer.java
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/RDBDocumentStoreJDBC.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/RDBDocumentSerializer.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentSerializer.java?rev=1826325&r1=1826324&r2=1826325&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentSerializer.java
(original)
+++
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentSerializer.java
Fri Mar 9 10:54:46 2018
@@ -17,6 +17,7 @@
package org.apache.jackrabbit.oak.plugins.document.rdb;
import static com.google.common.base.Preconditions.checkNotNull;
+import static
org.apache.jackrabbit.oak.plugins.document.rdb.RDBJDBCTools.asDocumentStoreException;
import static
org.apache.jackrabbit.oak.plugins.document.rdb.RDBJSONSupport.appendJsonMember;
import static
org.apache.jackrabbit.oak.plugins.document.rdb.RDBJSONSupport.appendJsonString;
import static
org.apache.jackrabbit.oak.plugins.document.rdb.RDBJSONSupport.appendJsonValue;
@@ -191,7 +192,7 @@ public class RDBDocumentSerializer {
blobInUse = true;
}
} catch (Exception ex) {
- throw new DocumentStoreException(ex);
+ throw asDocumentStoreException(ex, "parsing blob data as JSON");
}
json = new JsopTokenizer(charData);
@@ -243,7 +244,7 @@ public class RDBDocumentSerializer {
}
LOG.error(message, ex);
- throw new DocumentStoreException(message, ex);
+ throw asDocumentStoreException(ex, message);
}
}
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=1826325&r1=1826324&r2=1826325&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 10:54:46 2018
@@ -20,6 +20,7 @@ import static com.google.common.base.Pre
import static com.google.common.collect.Lists.newArrayList;
import static com.google.common.collect.Lists.partition;
import static
org.apache.jackrabbit.oak.plugins.document.UpdateUtils.checkConditions;
+import static
org.apache.jackrabbit.oak.plugins.document.rdb.RDBJDBCTools.asDocumentStoreException;
import static
org.apache.jackrabbit.oak.plugins.document.rdb.RDBJDBCTools.closeResultSet;
import static
org.apache.jackrabbit.oak.plugins.document.rdb.RDBJDBCTools.closeStatement;
import static
org.apache.jackrabbit.oak.plugins.document.rdb.RDBJDBCTools.createTableName;
@@ -251,7 +252,7 @@ public class RDBDocumentStore implements
try {
initialize(ds, builder, options);
} catch (Exception ex) {
- throw new DocumentStoreException("initializing RDB document
store", ex);
+ throw asDocumentStoreException(ex, "initializing RDB document
store");
}
}
@@ -479,7 +480,7 @@ public class RDBDocumentStore implements
}
connection.commit();
} catch (Exception ex) {
- throw new DocumentStoreException(ex);
+ throw asDocumentStoreException(ex, "trying to read: " + keys);
} finally {
this.ch.closeConnection(connection);
}
@@ -619,7 +620,7 @@ public class RDBDocumentStore implements
return result;
} catch (SQLException ex) {
LOG.error("Trying to determine time difference to server", ex);
- throw new DocumentStoreException(ex);
+ throw asDocumentStoreException(ex, "Trying to determine time
difference to server");
} finally {
this.ch.closeConnection(connection);
}
@@ -1668,7 +1669,7 @@ public class RDBDocumentStore implements
return result;
} catch (Exception ex) {
LOG.error("SQL exception on query", ex);
- throw new DocumentStoreException(ex);
+ throw asDocumentStoreException(ex, "SQL exception on query");
} finally {
this.ch.closeConnection(connection);
stats.doneQuery(watch.elapsed(TimeUnit.NANOSECONDS), collection,
fromKey, toKey,
@@ -1765,7 +1766,7 @@ public class RDBDocumentStore implements
return result;
} catch (SQLException ex) {
LOG.error("SQL exception on query", ex);
- throw new DocumentStoreException(ex);
+ throw asDocumentStoreException(ex, "SQL exception on query");
} finally {
this.ch.closeConnection(connection);
}
@@ -1809,7 +1810,7 @@ public class RDBDocumentStore implements
}
}
} catch (Exception ex) {
- throw new DocumentStoreException(ex);
+ throw asDocumentStoreException(ex, "exception while reading " +
id);
} finally {
this.ch.closeConnection(connection);
stats.doneFindUncached(watch.elapsed(TimeUnit.NANOSECONDS),
collection, id, docFound, false);
@@ -1892,7 +1893,7 @@ public class RDBDocumentStore implements
numDeleted = db.deleteWithCondition(connection, tmd, conditions);
connection.commit();
} catch (Exception ex) {
- throw DocumentStoreException.convert(ex, "deleting " + collection
+ ": " + conditions);
+ throw asDocumentStoreException(ex, "deleting " + collection + ": "
+ conditions);
} finally {
this.ch.closeConnection(connection);
stats.doneRemove(watch.elapsed(TimeUnit.NANOSECONDS), collection,
numDeleted);
@@ -2064,7 +2065,7 @@ public class RDBDocumentStore implements
bytes = data.getBytes("UTF-8");
} catch (UnsupportedEncodingException ex) {
LOG.error("UTF-8 not supported??", ex);
- throw new DocumentStoreException(ex);
+ throw asDocumentStoreException(ex, "UTF-8 not supported??");
}
if (NOGZIP) {
@@ -2083,7 +2084,7 @@ public class RDBDocumentStore implements
return bos.toByteArray();
} catch (IOException ex) {
LOG.error("Error while gzipping contents", ex);
- throw new DocumentStoreException(ex);
+ throw asDocumentStoreException(ex, "Error while gzipping
contents");
}
}
}
@@ -2207,7 +2208,7 @@ public class RDBDocumentStore implements
invalidateCache(collection, id, false);
}
}
- return DocumentStoreException.convert(ex, message);
+ return asDocumentStoreException(ex, message);
}
private <T extends Document> DocumentStoreException handleException(String
message, Exception ex, Collection<T> collection,
Modified:
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStoreJDBC.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStoreJDBC.java?rev=1826325&r1=1826324&r2=1826325&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStoreJDBC.java
(original)
+++
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStoreJDBC.java
Fri Mar 9 10:54:46 2018
@@ -20,6 +20,7 @@ import static com.google.common.collect.
import static com.google.common.collect.Sets.newHashSet;
import static
org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.CHAR2OCTETRATIO;
import static
org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.asBytes;
+import static
org.apache.jackrabbit.oak.plugins.document.rdb.RDBJDBCTools.asDocumentStoreException;
import static
org.apache.jackrabbit.oak.plugins.document.rdb.RDBJDBCTools.closeResultSet;
import static
org.apache.jackrabbit.oak.plugins.document.rdb.RDBJDBCTools.closeStatement;
@@ -158,7 +159,7 @@ public class RDBDocumentStoreJDBC {
}
public int delete(Connection connection, RDBTableMetaData tmd, Map<String,
Long> toDelete)
- throws SQLException, DocumentStoreException {
+ throws SQLException {
PreparedStatement stmt = connection.prepareStatement("delete from " +
tmd.getName() + " where ID=? and MODIFIED=?");
try {
for (Entry<String, Long> entry : toDelete.entrySet()) {
@@ -235,7 +236,7 @@ public class RDBDocumentStoreJDBC {
}
} catch (Exception ex) {
LOG.error("Trying to determine time difference to server", ex);
- throw new DocumentStoreException(ex);
+ throw asDocumentStoreException(ex, "Trying to determine time
difference to server");
} finally {
closeResultSet(rs);
closeStatement(stmt);
@@ -1000,8 +1001,8 @@ public class RDBDocumentStoreJDBC {
try {
return new String(rs.getBytes(idx), "UTF-8");
} catch (UnsupportedEncodingException ex) {
- LOG.error("UTF-8 not supported??", ex);
- throw new DocumentStoreException(ex);
+ LOG.error("UTF-8 not supported", ex);
+ throw asDocumentStoreException(ex, "UTF-8 not supported");
}
} else {
return rs.getString(idx);
@@ -1020,7 +1021,7 @@ public class RDBDocumentStoreJDBC {
}
} catch (IOException ex) {
LOG.warn("Invalid ID: " + id, ex);
- throw new DocumentStoreException("Invalid ID: " + id, ex);
+ throw asDocumentStoreException(ex, "Invalid ID: " + id);
}
}
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=1826325&r1=1826324&r2=1826325&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 10:54:46 2018
@@ -418,11 +418,15 @@ public class RDBJDBCTools {
}
} catch (IOException ex) {
LOG.warn("Invalid ID: " + value, ex);
- throw new DocumentStoreException("Invalid ID: " +
value, ex);
+ throw asDocumentStoreException(ex, "Invalid ID: " +
value);
}
}
return startIndex;
}
};
}
+
+ public static DocumentStoreException asDocumentStoreException(@Nonnull
Exception cause, @Nonnull String message) {
+ return new DocumentStoreException(message, cause);
+ }
}