写点什么

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

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

关注

评论

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

【死磕Java并发】-----J.U.C之AQS:阻塞和唤醒线程

chenssy

11月日更 死磕 Java 死磕 Java 并发

linux 上查找包含特定文本的所有文件

入门小站

Linux

在线文本按列截取工具

入门小站

工具

Flutter:如何在没有插件的情况下制作旋转动画

坚果

flutter 11月日更

详解阿里开源分布式事务框架Seata

博文视点Broadview

如何使用find和locate 命令在Linux 中查找文件和目录?

Ethereal

Linux find locate

《深入理解JVM虚拟机》读书笔记:第二章 Java内存区域与内存溢出异常

Joseph295

搞定大厂算法面试之leetcode精讲6.深度优先&广度优先

全栈潇晨

算法面试 Leet Code

博文推荐|深度解析如何在 Pulsar 中实现隔离

Apache Pulsar

Java 架构 分布式 云原生 Apache Pulsar

头条观察 | 元宇宙成为必然趋势的三种可能

CECBC

译文 | Apache Pulsar 集群如何确保消息不丢

Apache Pulsar

Java 分布式 云原生 中间件 Apache Pulsar

央视新闻联合百度智能云打造首个AI手语主播

百度大脑

人工智能

没有人比我更会使用集合!对,是dart中的集合

程序那些事

Java flutter dart 程序那些事 11月日更

一物一码可追溯!看区块链如何帮助消费者

CECBC

声网下一代视频引擎架构探索与实践

声网

音视频 视频处理 RTE 技术详解

Android C++系列:Linux进程间通信(二)

轻口味

c++ android jni 11月日更

DPDK 网络协议栈-vpp-OvS-DDos-虚拟化专家之路

赖猫

Linux 网络协议栈 DPDK

架构原则

卢卡多多

架构 11月日更

Prometheus Exporter (十)Ping Exporter

耳东@Erdong

Prometheus ping exporter 11月日更

[Pulsar] 消息生命历程(四)——Broker的消息处理

Zike Yang

Apache Pulsar 11月日更

【高并发】浅谈AQS中的CountDownLatch、Semaphore与CyclicBarrier

冰河

Java 并发编程 多线程 高并发 异步编程

Java Collectors API实践

FunTester

Java API 测试开发 FunTester Collectors

JavaScript 数组展平方法: flat() 和 flatMap()

devpoint

11月日更 flat flatMap

程序员如何应对职业天花板

石云升

职场天花板 职场经验 11月日更

风口上的低代码:我们看到了这些变化与趋势

脑极体

docker vs docker-compose 解密

liuzhen007

11月日更

架构实战营-模块六

瓜子葫芦侠

「架构实战营」

豪华阵容!13位专家力荐Spring5为企业级开发提供一站式方案

热爱java的分享家

Java 面试 程序人生 编程语言 经验分享

小谈C#异常

喵叔

11月日更

博文推荐 | 基于 Pulsar 事务实现 Exactly-Once 语义

Apache Pulsar

Java 架构 云原生 中间件 Apache Pulsar

贪心算法:加油站 ⛽

空城机

算法 大前端 11月日更

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