JBoss Community

Is is possible to instrument java core classes? Classes loaded by the bootstrap classloader

created by Rodrigo Uchoa in Javassist - View the full discussion

Hello!

 

I want to add an "insertBefore" on a method of a core JDK 5 class. For some reason it´s not working. Here's the code:

 

 

ClassPool pool = ClassPool.getDefault();
CtClass ctClass = pool.get("com.sun.org.apache.xerces.internal.impl.xs.XSMessageFormatter");
CtMethod ctMethod = ctClass.getDeclaredMethods()[0];
ctMethod.insertBefore("System.out.println(\"WORKED\");");
ctClass.toClass();

 

 

The com.sun.org.apache.xerces.internal.impl.xs.XSMessageFormatter comes bundled with the JDK, it's inside rt.jar. After the snippet above, I run some code that forces the XSMessageFormatter class to run, but my inserted code never runs. I can only get this to work on my own classes. This code is running as a simple standalone app.

 

Any ideas?

Reply to this message by going to Community

Start a new discussion in Javassist at Community