[exo-jcr-commits] exo-jcr SVN: r2658 - jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util.

do-not-reply at jboss.org do-not-reply at jboss.org
Fri Jun 18 05:04:50 EDT 2010


Author: tolusha
Date: 2010-06-18 05:04:49 -0400 (Fri, 18 Jun 2010)
New Revision: 2658

Modified:
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/SecurityHelper.java
Log:
EXOJCR-756: add new privileged method

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/SecurityHelper.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/SecurityHelper.java	2010-06-18 06:39:37 UTC (rev 2657)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/SecurityHelper.java	2010-06-18 09:04:49 UTC (rev 2658)
@@ -23,6 +23,7 @@
 import java.security.PrivilegedAction;
 import java.security.PrivilegedActionException;
 import java.security.PrivilegedExceptionAction;
+import java.sql.SQLException;
 
 import javax.jcr.RepositoryException;
 
@@ -69,6 +70,38 @@
    }
 
    /**
+    * Launches action in privileged mode. Can throw only IO exception.
+    * 
+    * @param <E>
+    * @param action
+    * @return
+    * @throws IOException
+    */
+   public static <E> E doPriviledgedSQLExceptionAction(PrivilegedExceptionAction<E> action) throws SQLException
+   {
+      try
+      {
+         return AccessController.doPrivileged(action);
+      }
+      catch (PrivilegedActionException pae)
+      {
+         Throwable cause = pae.getCause();
+         if (cause instanceof SQLException)
+         {
+            throw (SQLException)cause;
+         }
+         else if (cause instanceof RuntimeException)
+         {
+            throw (RuntimeException)cause;
+         }
+         else
+         {
+            throw new RuntimeException(cause);
+         }
+      }
+   }
+
+   /**
     * Launches action in privileged mode. Can throw only repository exception.
     * 
     * @param <E>
@@ -101,7 +134,6 @@
       }
    }
 
-
    /**
     * Launches action in privileged mode. Can throw only runtime exceptions.
     * 



More information about the exo-jcr-commits mailing list