You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ma...@apache.org on 2008/08/18 09:40:55 UTC

svn commit: r686688 - /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/OracleDatabaseJournal.java

Author: martijnh
Date: Mon Aug 18 00:40:55 2008
New Revision: 686688

URL: http://svn.apache.org/viewvc?rev=686688&view=rev
Log:
JCR-1362: DatabaseJournal improperly finds tables in external schemas when used on Oracle

Applied proposed patch.

Modified:
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/OracleDatabaseJournal.java

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/OracleDatabaseJournal.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/OracleDatabaseJournal.java?rev=686688&r1=686687&r2=686688&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/OracleDatabaseJournal.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/OracleDatabaseJournal.java Mon Aug 18 00:40:55 2008
@@ -16,6 +16,10 @@
  */
 package org.apache.jackrabbit.core.journal;
 
+import java.sql.DatabaseMetaData;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
 import org.apache.jackrabbit.util.Text;
 
 /**
@@ -68,4 +72,24 @@
         }
         return Text.replace(sql, TABLE_SPACE_VARIABLE, tspace).trim();
     }
+
+    /**
+     * {@inheritDoc}
+     */
+    protected boolean tableExists(DatabaseMetaData metaData, String tableName) throws SQLException {
+        if (metaData.storesLowerCaseIdentifiers()) {
+            tableName = tableName.toLowerCase();
+        } else if (metaData.storesUpperCaseIdentifiers()) {
+            tableName = tableName.toUpperCase();
+        }
+
+        String userName = metaData.getUserName();
+        ResultSet rs = metaData.getTables(null, userName, tableName, null);
+
+        try {
+            return rs.next();
+        } finally {
+            rs.close();
+        }
+    }
 }