[jboss-cvs] JBossAS SVN: r66744 - projects/aop/trunk/aop/src/main/org/jboss/aop.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Nov 5 11:44:46 EST 2007


Author: kabir.khan at jboss.com
Date: 2007-11-05 11:44:46 -0500 (Mon, 05 Nov 2007)
New Revision: 66744

Modified:
   projects/aop/trunk/aop/src/main/org/jboss/aop/ClassContainer.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/SecurityActions.java
Log:
Privileged blocks

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/ClassContainer.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/ClassContainer.java	2007-11-05 16:28:17 UTC (rev 66743)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/ClassContainer.java	2007-11-05 16:44:46 UTC (rev 66744)
@@ -230,12 +230,7 @@
 
    protected void createConstructorTables()
    {
-      constructors = AccessController.doPrivileged(new PrivilegedAction<Constructor[]>() {
-
-         public Constructor[] run()
-         {
-            return clazz.getDeclaredConstructors();
-         }});
+      constructors = SecurityActions.getDeclaredConstructors();
       
       if (constructors.length > 0)
       {

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/SecurityActions.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/SecurityActions.java	2007-11-05 16:28:17 UTC (rev 66743)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/SecurityActions.java	2007-11-05 16:44:46 UTC (rev 66744)
@@ -22,6 +22,7 @@
 package org.jboss.aop;
 
 import java.lang.reflect.AccessibleObject;
+import java.lang.reflect.Constructor;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
 import java.security.PrivilegedActionException;
@@ -147,4 +148,40 @@
       else
          return AccessController.doPrivileged(GetContextClassLoaderAction.INSTANCE);
    }
+   
+   interface GetDeclaredConstructorsAction 
+   {
+      Constructor[] getDeclaredConstructors(Class clazz);
+      
+      GetDeclaredConstructorsAction NON_PRIVILEGED = new GetDeclaredConstructorsAction() {
+
+         public Constructor[] getDeclaredConstructors(Class clazz)
+         {
+            return clazz.getDeclaredConstructors();
+         }};
+
+         GetDeclaredConstructorsAction PRIVILEGED = new GetDeclaredConstructorsAction() {
+
+            public Constructor[] getDeclaredConstructors(final Class clazz)
+            {
+               return AccessController.doPrivileged(new PrivilegedAction<Constructor[]>() {
+
+                  public Constructor[] run()
+                  {
+                     return clazz.getDeclaredConstructors();
+                  }});
+            }};
+   }
+   
+   static Constructor[] getDeclaredConstructors(Class clazz)
+   {
+      if (System.getSecurityManager() == null)
+      {
+         return GetDeclaredConstructorsAction.NON_PRIVILEGED.getDeclaredConstructors(clazz);
+      }
+      else
+      {
+         return GetDeclaredConstructorsAction.PRIVILEGED.getDeclaredConstructors(clazz);
+      }
+   }
 }




More information about the jboss-cvs-commits mailing list