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


Reply via email to