You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by th...@apache.org on 2008/05/05 11:16:27 UTC

svn commit: r653372 - /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleDbPersistenceManager.java

Author: thomasm
Date: Mon May  5 02:16:26 2008
New Revision: 653372

URL: http://svn.apache.org/viewvc?rev=653372&view=rev
Log:
JCR-1570: Better exception messages when generating schema

Modified:
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleDbPersistenceManager.java

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleDbPersistenceManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleDbPersistenceManager.java?rev=653372&r1=653371&r2=653372&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleDbPersistenceManager.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleDbPersistenceManager.java Mon May  5 02:16:26 2008
@@ -426,14 +426,15 @@
             }
             BufferedReader reader = new BufferedReader(new InputStreamReader(in));
             Statement stmt = connectionManager.getConnection().createStatement();
+            String sql = null;
             try {
-                String sql = reader.readLine();
+                sql = reader.readLine();
                 while (sql != null) {
-                    sql = createSchemaSQL(sql);
                     if (!sql.startsWith("#") && sql.length() > 0
                             && (sql.indexOf("BINVAL") < 0 || useDbBlobStore())) {
                         // only create blob related tables of db blob store configured
                         // execute sql stmt
+                        sql = createSchemaSQL(sql);
                         stmt.executeUpdate(sql);
                     }
                     // read next sql stmt
@@ -443,6 +444,11 @@
                 String msg = "Configuration error: unable to read the resource '" + schema + ".ddl': " + e;
                 log.debug(msg);
                 throw new RepositoryException(msg, e);
+            } catch (SQLException e) {
+                String msg = "Schema generation error: Issuing statement: " + sql;
+                SQLException se = new SQLException(msg);
+                se.initCause(e);
+                throw se;
             } finally {
                 IOUtils.closeQuietly(in);
                 stmt.close();
@@ -1086,7 +1092,7 @@
             throws ItemStateException {
         return loadBundle(id, false);
     }
-    
+
     /**
      * Reads the blob's bytes and returns it. this is a helper method to
      * circumvent issue JCR-1039 and JCR-1474
@@ -1135,7 +1141,7 @@
             Blob b = rs.getBlob(1);
             byte[] bytes = getBytes(b);
             DataInputStream din = new DataInputStream(new ByteArrayInputStream(bytes));
-            
+
             if (checkBeforeLoading) {
                 if (binding.checkBundle(din)) {
                     // reset stream for readBundle()
@@ -1145,7 +1151,7 @@
                     throw new Exception("invalid bundle, see previous BundleBinding error log entry");
                 }
             }
-            
+
             NodePropBundle bundle = binding.readBundle(din, id);
             bundle.setSize(bytes.length);
             return bundle;