[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