当try / finally块出现在源代码中时,JSR / RET指令将出现在字节码中。即使使用-target 1.5,Javac 1.6+似乎也不发出它们,但是Eclipse Java编译器会发出它们。
JSR是JVM里废弃了的指令,在一些旧版本的jar,或者是要支持jdk 5的jar里可能有这个指令。当做了类增强之后,asm要重启计算frame,就会抛出异常。所以要在类增强之前,先把JSR指令转换移除掉。
该报错不会影响运行,在开发环境会出现,在生产环境不会存在,原因是因为ebean插件在增强动态代理时无法找到相应的环境,Ebean没法修改和生成需要的文件。