VerifyError解决方案
2015-10-26 17:48
316 查看
项目升级到JDK7后,点击一个页面,报了如下错误,注意,是Error不是Exception哦!
Oops: VerifyError
An unexpected error occured caused by exception VerifyError: Inconsistent stackmap frames at branch target 778 Exception Details: Location: controllers/Games.list(Ldto/gm/sc/GameSearchCriteria;)V @778: ldc_w Reason: Type ‘java/lang/Object’ (current frame, locals[5]) is not assignable to ‘java/util/ArrayList’ (stack map, locals[5]) Current Frame: bci: @749 flags: { } locals: { ‘dto/gm/sc/GameSearchCriteria’, long, long_2nd, top, ‘common/utils/PageData’, ‘java/lang/Object’, ‘java/util/ArrayList’, ‘java/util/ArrayList’, integer } stack: { } Stackmap Frame: bci: @778 flags: { } locals: { ‘dto/gm/sc/GameSearchCriteria’, top, top, top, ‘common/utils/PageData’, ‘java/util/ArrayList’, ‘java/util/ArrayList’, ‘java/util/ArrayList’, integer } stack: { } Bytecode: 0000000: b80a c013 0a7d 2ab8 0a7f b807 c79a 0014 0000010: 1307 c904 bd01 4359 032a 53b8 07cb a704 (太长了这里省略)
Oops: VerifyError
An unexpected error occured caused by exception VerifyError: Inconsistent stackmap frames at branch target 778 Exception Details: Location: controllers/Games.list(Ldto/gm/sc/GameSearchCriteria;)V @778: ldc_w Reason: Type ‘java/lang/Object’ (current frame, locals[5]) is not assignable to ‘java/util/ArrayList’ (stack map, locals[5]) Current Frame: bci: @749 flags: { } locals: { ‘dto/gm/sc/GameSearchCriteria’, long, long_2nd, top, ‘common/utils/PageData’, ‘java/lang/Object’, ‘java/util/ArrayList’, ‘java/util/ArrayList’, integer } stack: { } Stackmap Frame: bci: @778 flags: { } locals: { ‘dto/gm/sc/GameSearchCriteria’, top, top, top, ‘common/utils/PageData’, ‘java/util/ArrayList’, ‘java/util/ArrayList’, ‘java/util/ArrayList’, integer } stack: { } Bytecode: 0000000: b80a c013 0a7d 2ab8 0a7f b807 c79a 0014 0000010: 1307 c904 bd01 4359 032a 53b8 07cb a704 (太长了这里省略)
产生Error的原因
经过查询是因为 Any tool that modifies bytecode in a version 51 classfile must be sure to update the stackmap information to be consistent with the bytecode in order to pass verification. JDK7 引入版本为51的字节码规范,使用了严格的类型检查器,任何工具修改了字节码的,都需要更新stackmap,但是jws修改了字节码,而没有更新 stackmap。解决方案
解决方法:启动参数添加 -XX:-UseSplitVerifier相关文章推荐
- Android手势密码实现方案
- SVD++协同过滤
- C++:类的成员函数定义方式
- can总线(三)--如何通过波形解析can总线数据
- MongoDB的db.currentOp()输出结果分析
- MongoDB的db.currentOp()输出结果分析
- UFT 12.5 下载方法及地址
- 软件测试基础课程学习笔记1--软件测试简介
- 机器学习理解(一)
- response.setContentType()的作用及参数
- MAC 安装 openvc
- linux(ubuntu14.04)+GPU+cuda6.5+caffe+openCV2.4.9+matlab2014a+python的新手配置(修改版)
- 解决提示ADB server didn't ACK的错误,无法启动ADB服务
- .NET 通过SmtpClient发送邮件 提示 4.7.1 service unavailable try again later 解决办法
- 移动硬盘与系统签名冲突
- JDK并发工具类源码学习系列——ConcurrentHashMap
- 14.4 Using Index-Organized Tables forPerformance 使用索引组织的表
- HID 读写report ID注意事项
- 非哥指导思想
- jquery的$().each,$.each的区别