[jboss-cvs] JBossAS SVN: r103261 - projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/bytecode.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Mar 30 09:55:46 EDT 2010
Author: kabir.khan at jboss.com
Date: 2010-03-30 09:55:45 -0400 (Tue, 30 Mar 2010)
New Revision: 103261
Modified:
projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/bytecode/JavassistMemberFactory.java
Log:
[JBREFLECT-109] Use privileged block when generating the classes
Modified: projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/bytecode/JavassistMemberFactory.java
===================================================================
--- projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/bytecode/JavassistMemberFactory.java 2010-03-30 13:51:19 UTC (rev 103260)
+++ projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/bytecode/JavassistMemberFactory.java 2010-03-30 13:55:45 UTC (rev 103261)
@@ -25,6 +25,9 @@
import java.io.FileOutputStream;
import java.io.IOException;
import java.lang.reflect.Constructor;
+import java.security.AccessController;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
import java.util.concurrent.atomic.AtomicInteger;
import javassist.CannotCompileException;
@@ -260,7 +263,7 @@
try
{
//Create a new public class
- ClassFile cf = new ClassFile(false, getGeneratedClassName(), superClass.getName());
+ final ClassFile cf = new ClassFile(false, getGeneratedClassName(), superClass.getName());
cf.setAccessFlags(AccessFlag.PUBLIC);
cf.setInterfaces(getInterfaceNames());
@@ -274,9 +277,27 @@
debugWriteFile(cf);
- ClassLoader cl = target.getClassPool().getClassLoader();
- return FactoryHelper.toClass(cf, cl);
+ final ClassLoader cl = target.getClassPool().getClassLoader();
+
+ return AccessController.doPrivileged(new PrivilegedExceptionAction<Class<T>>()
+ {
+ public Class<T> run() throws Exception
+ {
+ return FactoryHelper.toClass(cf, cl);
+ }
+ });
+
}
+ catch(RuntimeException e)
+ {
+ throw e;
+ }
+ catch (PrivilegedActionException e)
+ {
+ if (e.getCause() instanceof RuntimeException)
+ throw (RuntimeException)e.getCause();
+ throw new RuntimeException(e.getCause());
+ }
catch (Exception e)
{
throw new RuntimeException(e);
More information about the jboss-cvs-commits
mailing list