1*f1fbf3c2SXin Li package test5; 2*f1fbf3c2SXin Li 3*f1fbf3c2SXin Li import java.util.Random; 4*f1fbf3c2SXin Li import javassist.*; 5*f1fbf3c2SXin Li 6*f1fbf3c2SXin Li public class JIRA241 { run()7*f1fbf3c2SXin Li public int run() { 8*f1fbf3c2SXin Li test(this); 9*f1fbf3c2SXin Li return 10; 10*f1fbf3c2SXin Li } 11*f1fbf3c2SXin Li test(Object o)12*f1fbf3c2SXin Li public static void test(Object o) { 13*f1fbf3c2SXin Li //part 1 14*f1fbf3c2SXin Li if (o == null) { 15*f1fbf3c2SXin Li return; 16*f1fbf3c2SXin Li } 17*f1fbf3c2SXin Li 18*f1fbf3c2SXin Li //part 2 19*f1fbf3c2SXin Li int oper = new Random().nextInt(); 20*f1fbf3c2SXin Li switch (oper) { 21*f1fbf3c2SXin Li case 1: 22*f1fbf3c2SXin Li break; 23*f1fbf3c2SXin Li } 24*f1fbf3c2SXin Li } 25*f1fbf3c2SXin Li main(String[] args)26*f1fbf3c2SXin Li public static void main(String[] args) throws Exception { 27*f1fbf3c2SXin Li ClassPool pool = ClassPool.getDefault(); 28*f1fbf3c2SXin Li CtClass cc = pool.get("test5.JIRA241"); 29*f1fbf3c2SXin Li CtMethod testMethod = cc.getMethod("test", "(Ljava/lang/Object;)V"); 30*f1fbf3c2SXin Li testMethod.insertAfter("System.out.println(\"inserted!\");"); 31*f1fbf3c2SXin Li cc.writeFile(); 32*f1fbf3c2SXin Li } 33*f1fbf3c2SXin Li } 34