BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Última atualização do Java quebra ferramentas de terceiros

Última atualização do Java quebra ferramentas de terceiros

Favoritos

A última atualização do Java 8 (update 11) e do Java 7 (update 65) lançadas pela Oracle causou problemas para algumas ferramentas de terceiros. Uma das ferramentas afetadas é o JRebel da ZeroTurnaround. A linguagem de programação Groovy também relatou incompatibilidades. Outras ferramentas afetadas incluem o Javassist (biblioteca de manipulação de bytecode), Google Guice (em determinadas circunstâncias, especialmente com usuários usando AOP) e a ferramenta de cobertura de código Jacoco. A Oracle confirmou o bug através de um test case enviado por Jochen Theodorou da equipe do projeto Groovy.

Os problemas parecem ter sido causados por uma mudança no subsistema de verificação de bytecode da JVM nas versões 8u11 e 7u65. A linguagem Java exige que qualquer chamada a um construtor de superclasse seja a primeira ação realizada dentro de um construtor, mas parece que isso não foi cumprido pelo verificador de bytecode em versões anteriores da plataforma. A decisão da Oracle de começar a aplicar mais firmemente essa restrição da linguagem pode estar fechando um bug na especificação, mas parece ter impactado em uma série de ferramentas dentro do ecossistema.

Até agora não há nenhuma indicação de que qualquer código Java que não usa técnicas de reweaving de bytecode ou AOP seja afetado pelo bug. Essa versão do Java é entendida como sendo totalmente compatível com todo bytecode criado diretamente pelo compilador javac que não está sujeito a técnicas de reweaving, embora isso possa criar limitações e desconforto aos desenvolvedores dada a utilização ampla dessas técnicas nos frameworks modernos.

A Oracle ainda irá anunciar uma data para lançamento da correção. Até agora as únicas medidas para contornar o problema são utilizar a flag -noverify na JVM ou adiar a atualização até que uma correção seja liberada. No entanto, algumas das ferramentas afetadas estão implementando soluções por conta própria. Anton Arhipov da Zero Turnaround, por exemplo, confirma que a última versão do JRebel (5.6.1) inclui uma solução para o problema.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT