[jboss-cvs] JBossAS SVN: r59393 - projects/aop/trunk/aop/src/main/org/jboss/aop
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Jan 5 19:35:02 EST 2007
Author: kabir.khan at jboss.com
Date: 2007-01-05 19:34:57 -0500 (Fri, 05 Jan 2007)
New Revision: 59393
Modified:
projects/aop/trunk/aop/src/main/org/jboss/aop/ClassicWeavingStrategy.java
projects/aop/trunk/aop/src/main/org/jboss/aop/SecurityActions.java
projects/aop/trunk/aop/src/main/org/jboss/aop/SuperClassesFirstWeavingStrategy.java
Log:
Some more security exceptions fixed
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/ClassicWeavingStrategy.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/ClassicWeavingStrategy.java 2007-01-06 00:09:16 UTC (rev 59392)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/ClassicWeavingStrategy.java 2007-01-06 00:34:57 UTC (rev 59393)
@@ -110,7 +110,7 @@
pool.lockInCache(clazz);
if (AspectManager.debugClasses)
{
- clazz.debugWriteFile();
+ SecurityActions.debugWriteFile(clazz);
}
byte[] rtn = clazz.toBytecode();
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/SecurityActions.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/SecurityActions.java 2007-01-06 00:09:16 UTC (rev 59392)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/SecurityActions.java 2007-01-06 00:34:57 UTC (rev 59393)
@@ -27,6 +27,8 @@
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
+import javassist.CtClass;
+
/**
*
* @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
@@ -81,4 +83,51 @@
}
}
+ interface CtClassDebugWriteFileAction
+ {
+ void debugWriteFile(CtClass ctClass);
+
+ CtClassDebugWriteFileAction PRIVILEGED = new CtClassDebugWriteFileAction()
+ {
+ public void debugWriteFile(final CtClass ctClass)
+ {
+ try
+ {
+ AccessController.doPrivileged(new PrivilegedExceptionAction()
+ {
+ public Object run() throws Exception
+ {
+ ctClass.debugWriteFile();
+ return null;
+ }
+ });
+ }
+ catch (PrivilegedActionException e)
+ {
+ //Not really a problem if we're not able to write the debug class file
+ }
+ }
+ };
+
+ CtClassDebugWriteFileAction NON_PRIVILEGED = new CtClassDebugWriteFileAction()
+ {
+ public void debugWriteFile(CtClass ctClass)
+ {
+ ctClass.debugWriteFile();
+ }
+ };
+ }
+
+ static void debugWriteFile(CtClass ctClass)
+ {
+ if (System.getSecurityManager() == null)
+ {
+ CtClassDebugWriteFileAction.NON_PRIVILEGED.debugWriteFile(ctClass);
+ }
+ else
+ {
+ CtClassDebugWriteFileAction.PRIVILEGED.debugWriteFile(ctClass);
+ }
+ }
+
}
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/SuperClassesFirstWeavingStrategy.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/SuperClassesFirstWeavingStrategy.java 2007-01-06 00:09:16 UTC (rev 59392)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/SuperClassesFirstWeavingStrategy.java 2007-01-06 00:34:57 UTC (rev 59393)
@@ -68,7 +68,7 @@
pool.lockInCache(info.getClazz());
if (AspectManager.debugClasses)
{
- info.getClazz().debugWriteFile();
+ SecurityActions.debugWriteFile(info.getClazz());
}
byte[] rtn = info.getClazz().toBytecode();
if (AspectManager.getPrune()) info.getClazz().prune();
@@ -89,7 +89,6 @@
else
System.err.println("[error] " + ex.getMessage() +
".. Do verbose mode if you want full stack trace.");
-
}
throw ex;
}
More information about the jboss-cvs-commits
mailing list