写点什么

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:194133
用户头像

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

关注

评论

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

【架构师训练营 1 期】第十一周学习总结

诺乐

话题讨论 | 2021要来了,你对未来的一年有什么期待

soolaugust

话题讨论

第十一周作业

wanlinwang

极客大学架构师训练营

第十一周 作业

熊桂平

极客大学架构师训练营

架构师训练营 2 期 Week07 作业

第十周作业 (作业一)

Geek_83908e

架构师一期

架构训练营第七周作业

一期一会

性能测试 Go 语言

第二周课后练习

Binary

极客大学架构师训练营

架构第十一周作业

Geek_Gu

极客大学架构师训练营

Week_11 作业

golangboy

极客大学架构师训练营

8张图带你了解大型应用架构演进历程

Silently9527

架构 互联网架构设计

第七周-作业

jizhi7

第 07 周 性能压测(响应时间和吞吐量变化)

Airship

极客大学架构师训练营

第十一周 学习总结

熊桂平

极客大学架构师训练营

话题讨论 | 遇到的印象最深的开源项目

soolaugust

话题讨论

架构师训练营 2 期 Week07 总结

week02

ルンルン

密码学,心底的凉暖

X.F

密码学

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

Binary

极客大学架构师训练营

week7-性能优化

未来已来

week7-作业二:根据当周学习情况,完成一篇学习总结

未来已来

与前端训练营的日子 --Week06

SamGo

学习

【架构师训练营 1 期】第十一周作业

诺乐

架构第十一周总结

Geek_Gu

极客大学架构师训练营

架构师训练营第 1 期 - 第 10 周 - 命题作业

wgl

Week_11 总结

golangboy

极客大学架构师训练营

第11周作业

paul

训练营 - 第11周

袭望

从一次不佳的小组讨论展开

sherlockq

架构师训练营 - week11 - 作业

lucian

极客大学架构师训练营

第十一周作业(作业二)

Geek_83908e

架构师一期

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