微信号:infoqchina

介绍:有内容的技术社区媒体

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

2014-08-04 15:28 InfoQ

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


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


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


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


One More Thing

活动信息:由UBM主办的国际性云计算系列活动——2014全球云计算大会•中国站(Cloud Connect China)将于9月16-18日在上海国际会议中心举行。从今年的销售情况来看,虽然CloudConnect进入中国才第二年,但其品牌价值已广受认可,更多企业积极参与,筹备演讲及展示。主办方今日发布首批赞助商与展商,国内外企业各占半壁。立即注册享低价优惠;在线预登记可免费参观展区。点击【阅读原文】获取更多活动信息


 
InfoQ 更多文章 Facebook如何实现PB级别数据库自动化备份 学术派Google软件工程师Matt Welsh谈移动开发趋势 Spotify为什么要使用一些“无聊”的技术? 妹纸们放假了,汉纸们做啥? 大多数重构可以避免
猜您喜欢 流利说@WWDC 2016 如何成为一位数据可视化高手? 掌握GitHub上这100个Python repository,能让你的工资翻倍哦 [有人@你]直通腾讯、百度、阿里的实习机会,不看学历,看实力! Android设计模式之单例模式