Introscope intrumentation static / final method
Rédigé par gorki Aucun commentaireProblem :
It seems that I have no metric on one particular method while it works for all the others.
This is method is :
public final boolean myMethod(myArgs)
Does the fact that this method is final is a problem for bytecode instrumentation of Introscope ?
Solution :
No. It works :) As usual. My problem is somewhere else.
3 classes :
Parent
package com.test.caapm.finalmethodtest;
public class ParentClass {
public void finalMethod() {
System.out.println("parentFinalMethod");
}
}
Middle
package com.test.caapm.finalmethodtest;
public class TestFinalMethodAgent extends ParentClass {
public static void staticMethod() {
System.out.println("staticMethod");
}
public final static void finalStaticMethod() {
System.out.println("finalStaticMethod");
}
public final void finalMethod() {
System.out.println("finalMethod");
}
public static void main(String... args) {
TestFinalMethodAgent test = new TestFinalMethodAgent();
while(true) {
test.finalMethod();
TestFinalMethodAgent.staticMethod();
TestFinalMethodAgent.finalStaticMethod();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
}
}
Child
package com.test.caapm.finalmethodtest;
public class ChildClass extends TestFinalMethodAgent{
}
Pbd
SetFlag: TestFinalMethod
TurnOn: TestFinalMethod
IdentifyDeepInheritedAs: com.test.caapm.finalmethodtest.ParentClass TestFinalMethod
TraceAllMethodsIfFlagged: TestFinalMethod PerIntervalCounter "{classname} - {method}"