@@ -231,14 +231,14 @@
-
+
@@ -263,7 +263,7 @@
-
+
@@ -273,7 +273,7 @@
-
+
diff --git a/org.intrace/lib/intrace-agent-test.jar b/org.intrace/lib/intrace-agent-test.jar
new file mode 100644
index 0000000..d846ba5
Binary files /dev/null and b/org.intrace/lib/intrace-agent-test.jar differ
diff --git a/org.intrace/lib/traceagent_test.jar b/org.intrace/lib/traceagent_test.jar
deleted file mode 100644
index 4b7bea1..0000000
Binary files a/org.intrace/lib/traceagent_test.jar and /dev/null differ
diff --git a/org.intrace/src/org/intrace/agent/ClassTransformer.java b/org.intrace/src/org/intrace/agent/ClassTransformer.java
index 0382ae9..1b4860a 100644
--- a/org.intrace/src/org/intrace/agent/ClassTransformer.java
+++ b/org.intrace/src/org/intrace/agent/ClassTransformer.java
@@ -133,15 +133,12 @@ public class ClassTransformer implements ClassFileTransformer
return false;
}
- // Don't modify self
- if (className.startsWith("org.intrace")
- || className.contains("objectweb.asm"))
+ // Don't sensitive classes
+ if (isSensitiveClass(className))
{
if (settings.isVerboseMode())
{
- System.out
- .println("Ignoring class in org.intrace or objectweb.asm package: "
- + className);
+ System.out.println("Ignoring sensitive class: " + className);
}
return false;
}
@@ -170,6 +167,8 @@ public class ClassTransformer implements ClassFileTransformer
// Don't modify a class from a JAR file unless this is allowed
CodeSource codeSource = protectionDomain.getCodeSource();
if (!settings.allowJarsToBeTraced() && (codeSource != null)
+ && (codeSource.getLocation() != null)
+ && (codeSource.getLocation().getPath() != null)
&& codeSource.getLocation().getPath().endsWith(".jar"))
{
if (settings.isVerboseMode())
@@ -210,6 +209,14 @@ public class ClassTransformer implements ClassFileTransformer
return true;
}
+ private boolean isSensitiveClass(String className)
+ {
+ return className.contains("intrace") || className.contains("objectweb.asm")
+ || className.startsWith("sun")
+ || className.startsWith("org.openide")
+ || className.startsWith("com.sun") || className.startsWith("java");
+ }
+
/**
* java.lang.instrument Entry Point
*
@@ -230,10 +237,7 @@ public class ClassTransformer implements ClassFileTransformer
if (isToBeConsideredForInstrumentation(classBeingRedefined, loader,
className, protectionDomain))
{
- if (settings.isVerboseMode())
- {
- System.out.println("!! Instrumenting class: " + compclass);
- }
+ System.out.println("!! Instrumenting class: " + compclass);
if (settings.saveTracedClassfiles())
{