1*f1fbf3c2SXin Li package test4; 2*f1fbf3c2SXin Li 3*f1fbf3c2SXin Li import javassist.ClassPool; 4*f1fbf3c2SXin Li import javassist.CtClass; 5*f1fbf3c2SXin Li import javassist.CtMethod; 6*f1fbf3c2SXin Li 7*f1fbf3c2SXin Li public class JIRA195 { run()8*f1fbf3c2SXin Li public int run() { return test(3); } 9*f1fbf3c2SXin Li test(int i)10*f1fbf3c2SXin Li public int test(int i) { 11*f1fbf3c2SXin Li try {} 12*f1fbf3c2SXin Li catch (Throwable t) {} 13*f1fbf3c2SXin Li finally { 14*f1fbf3c2SXin Li i = incByOne(i); 15*f1fbf3c2SXin Li } 16*f1fbf3c2SXin Li 17*f1fbf3c2SXin Li return i; 18*f1fbf3c2SXin Li } 19*f1fbf3c2SXin Li incByOne(int i)20*f1fbf3c2SXin Li private int incByOne(int i) { 21*f1fbf3c2SXin Li return i + 1; 22*f1fbf3c2SXin Li } 23*f1fbf3c2SXin Li main(String[] args)24*f1fbf3c2SXin Li public static void main(String[] args) throws Exception { 25*f1fbf3c2SXin Li ClassPool cp = new ClassPool(); 26*f1fbf3c2SXin Li cp.appendClassPath("./target/test-classes"); 27*f1fbf3c2SXin Li CtClass cc = cp.get("test4.JIRA195"); 28*f1fbf3c2SXin Li CtMethod mth = cc.getDeclaredMethod("test"); 29*f1fbf3c2SXin Li mth.getMethodInfo().rebuildStackMap(cc.getClassPool()); 30*f1fbf3c2SXin Li } 31*f1fbf3c2SXin Li } 32