[exo-jcr-commits] exo-jcr SVN: r2781 - jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/jdbc.
do-not-reply at jboss.org
do-not-reply at jboss.org
Wed Jul 14 03:13:41 EDT 2010
Author: dkatayev
Date: 2010-07-14 03:13:40 -0400 (Wed, 14 Jul 2010)
New Revision: 2781
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/jdbc/DBInitializer.java
Log:
EXOJCR-783 query execute wrapped with 'do privileged' block
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/jdbc/DBInitializer.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/jdbc/DBInitializer.java 2010-07-13 16:53:30 UTC (rev 2780)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/jdbc/DBInitializer.java 2010-07-14 07:13:40 UTC (rev 2781)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.jcr.impl.util.jdbc;
+import org.exoplatform.services.jcr.impl.util.SecurityHelper;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
@@ -26,6 +27,7 @@
import java.io.InputStreamReader;
import java.security.AccessController;
import java.security.PrivilegedAction;
+import java.security.PrivilegedExceptionAction;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
@@ -205,7 +207,9 @@
{
if (irs.getShort("TYPE") != DatabaseMetaData.tableIndexStatistic
&& irs.getString("INDEX_NAME").equalsIgnoreCase(indexName))
+ {
res = true; // check for index params matching etc.
+ }
}
return res;
}
@@ -246,7 +250,9 @@
if (isTableExists(conn, tableName))
{
if (LOG.isDebugEnabled())
+ {
LOG.debug("Table is already exists " + tableName);
+ }
return true;
}
}
@@ -262,7 +268,9 @@
if (isTableExists(conn, tableName))
{
if (LOG.isDebugEnabled())
+ {
LOG.debug("View is already exists " + tableName);
+ }
return true;
}
}
@@ -284,7 +292,9 @@
if (isIndexExists(conn, tableName, indexName))
{
if (LOG.isDebugEnabled())
+ {
LOG.debug("Index is already exists " + indexName);
+ }
return true;
}
}
@@ -313,7 +323,9 @@
if (isSequenceExists(conn, sequenceName))
{
if (LOG.isDebugEnabled())
+ {
LOG.debug("Sequence is already exists " + sequenceName);
+ }
return true;
}
}
@@ -328,7 +340,9 @@
if (isTriggerExists(conn, triggerName))
{
if (LOG.isDebugEnabled())
+ {
LOG.debug("Trigger is already exists " + triggerName);
+ }
return true;
}
}
@@ -336,7 +350,9 @@
else
{
if (LOG.isDebugEnabled())
+ {
LOG.debug("Command is not detected for check '" + sql + "'");
+ }
}
return false;
@@ -383,14 +399,23 @@
if (s.length() > 0)
{
if (isObjectExists(connection, sql = s))
+ {
continue;
+ }
if (LOG.isDebugEnabled())
{
LOG.debug("Execute script: \n[" + sql + "]");
}
-
- st.executeUpdate(sql);
+ final Statement finalSt = st;
+ final String finalSql = sql;
+ SecurityHelper.doPriviledgedSQLExceptionAction(new PrivilegedExceptionAction<Object>(){
+ public Object run() throws Exception
+ {
+ finalSt.executeUpdate(finalSql);
+ return null;
+ }
+ });
}
}
More information about the exo-jcr-commits
mailing list