You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by da...@apache.org on 2006/12/30 04:20:56 UTC
svn commit: r491163 - in /incubator/openejb/trunk/openejb3/container:
openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
openejb-javaagent/src/main/java/org/apache/openejb/javaagent/Agent.java
Author: dain
Date: Fri Dec 29 19:20:56 2006
New Revision: 491163
URL: http://svn.apache.org/viewvc?view=rev&rev=491163
Log:
Add permission check to Agent. Add null checks when agent is not installed
Modified:
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
incubator/openejb/trunk/openejb3/container/openejb-javaagent/src/main/java/org/apache/openejb/javaagent/Agent.java
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?view=diff&rev=491163&r1=491162&r2=491163
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java Fri Dec 29 19:20:56 2006
@@ -55,6 +55,7 @@
import java.util.Map;
import java.util.Properties;
import java.lang.instrument.ClassFileTransformer;
+import java.lang.instrument.Instrumentation;
public class Assembler extends AssemblerTool implements org.apache.openejb.spi.Assembler {
@@ -241,7 +242,10 @@
PersistenceClassLoaderHandler persistenceClassLoaderHandler = new PersistenceClassLoaderHandler() {
public void addTransformer(ClassLoader classLoader, ClassFileTransformer classFileTransformer) {
- Agent.getInstrumentation().addTransformer(classFileTransformer);
+ Instrumentation instrumentation = Agent.getInstrumentation();
+ if (instrumentation != null) {
+ instrumentation.addTransformer(classFileTransformer);
+ }
}
public ClassLoader getNewTempClassLoader(ClassLoader classLoader) {
Modified: incubator/openejb/trunk/openejb3/container/openejb-javaagent/src/main/java/org/apache/openejb/javaagent/Agent.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-javaagent/src/main/java/org/apache/openejb/javaagent/Agent.java?view=diff&rev=491163&r1=491162&r2=491163
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-javaagent/src/main/java/org/apache/openejb/javaagent/Agent.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-javaagent/src/main/java/org/apache/openejb/javaagent/Agent.java Fri Dec 29 19:20:56 2006
@@ -18,8 +18,11 @@
package org.apache.openejb.javaagent;
import java.lang.instrument.Instrumentation;
+import java.lang.reflect.ReflectPermission;
+import java.security.Permission;
public class Agent {
+ private static final Permission ACCESS_PERMISSION = new ReflectPermission("suppressAccessChecks");
private static String agentArgs;
private static Instrumentation instrumentation;
@@ -32,7 +35,14 @@
return agentArgs;
}
+ /**
+ * Gets the instrumentation instance.
+ * You must have java.lang.ReflectPermission(suppressAccessChecks) to call this method
+ * @return the instrumentation instance
+ */
public static Instrumentation getInstrumentation() {
+ SecurityManager sm = System.getSecurityManager();
+ if (sm != null) sm.checkPermission(ACCESS_PERMISSION);
return instrumentation;
}
}