[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