写点什么

Java 8 Update 11 破坏了第三方工具

  • 2014-08-03
  • 本文字数:649 字

    阅读完需:约 2 分钟

Oracle 最近发布的 Java 8 update 11(以及 7 update 65)导致一些第三方工具出现了问题。ZeroTurnaround 的 JRebel 是受影响的工具之一,Groovy 编程语言也报告了不兼容情况。其它受影响的工具还包括 Javassist ,这是一个 Java 字节码操作库,同时还有一些用户报告了工具的问题,如 Google 的 Guice(在某些情况下——尤其是那些使用了 AOP 的情况)和 Jacoco 代码覆盖工具。Oracle 通过 Groovy 项目团队 Jochen Theodorou 提供的测试用例确认了这一 Bug。

该问题似乎是由于 8u11 修改了 JVM 的字节码验证子系统而引起的。Java 语言要求构造函数将任何对超类构造函数的调用作为其首先执行的动作,但在平台的早期版本中,字节码验证器似乎没有对这一点进行强制。Oracle 决定开始更坚定地强制执行这一语言特性,这可能会消除一个语言规范的Bug,但它似乎已经对该生态系统中的许多工具产生了影响。

目前,没有任何迹象表明没有使用字节码重编或者AOP 技术的Java 代码受到该Bug 的影响。据了解,8u11 版本完全兼容所有由javac 直接生成的、不受重编技术影响的字节码,但这些技术在现代框架中的广泛存在使得这一消息只能给开发人员带来有限的安慰。

Oracle 至今尚未宣布发布修复补丁的日期,而且到目前为止,唯一的总体变通方案是使用 -noverify 开关或者避免在修复补丁发布之前升级。不过,个别工具已经提出了他们自己的变通方案,比如,Anton Arhipov(Zero Turnaround)已经确认,最新版本的 JRebel(5.6.1)将包含针对这个问题的变通方案。

查看英文原文: Java 8 Update 11 Broke Third Party Tools

2014-08-03 02:194448
用户头像

发布了 256 篇内容, 共 96.7 次阅读, 收获喜欢 12 次。

关注

评论

发布
暂无评论
发现更多内容

【喜迎端午】够强大,才够出“粽”,加入InfoQ写作平台,领取节日限定头像标识

InfoQ写作社区官方

写作平台 端午节 热门活动

架构师训练营第2周作业

在野

极客大学架构师训练营

Netty4.x的Channel相关类图及分析

娄江国

架构师第二周课后作业

傻傻的帅

极客大学架构师训练营

无抽象不架构

菜根老谭

架构 抽象 架构思维 抽象思维

【week02】作业

chengjing

依赖倒置

陈皮

第二周 - 作业

Happy-Coming

第二章总结

大雄

架构师训练营第二周作业

路人

依赖倒置原则

清风明月

极客大学架构师训练营

架构师训练营 No.2 周作业

连增申

架构师训练营-W02H-架构设计

b1a2e1u1u

极客大学架构师训练营

第二周作业

LEAF

【week02】总结

chengjing

第二周总结

Thrine

Spring BeanPostProcessor 你不能不知道的事

CoderLi

Java spring 程序员 源码分析 后端

架构师训练营作业

Hanson

架构师训练营-W02S-架构设计

b1a2e1u1u

极客大学架构师训练营

架构师训练营 第二周作业

fujin

极客大学架构师训练营

架构师训练营 - 第二周学习总结

hellohuan

极客大学架构师训练营

架构师训练营第二周总结

Hanson

架构师训练营-第2课总结-20200613-软件设计

👑👑merlan

架构总结 软件设计

游戏夜读 | 中国移动游戏简史

game1night

第二周总结

LEAF

架构第二周-学习总结

J.Smile

极客大学架构师训练营

「架构师训练营」第 2 周学习总结

guoguo 👻

极客大学架构师训练营

「架构师训练营」第2周作业

fujin

ioc 极客大学架构师训练营 第二周作业

架构师训练营第二周课后作业

竹森先生

极客大学 极客大学架构师训练营

原创 | TDD工具集:JUnit、AssertJ和Mockito (二十三)编写测试-并行测试

编程道与术

Java 编程 TDD 单元测试 JUnit

JavaScript中删除树形结构数据里的节点

码上生长

Java

Java 8 Update 11破坏了第三方工具_Java_Ben Evans_InfoQ精选文章