BT

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

por Ben Evans , traduzido por Marcelo Cenerino em 05 Ago 2014 |

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.

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2014 C4Media Inc.
Política de privacidade
BT