Oracle ha introducido un bug en Java 7 Update 51 que está rompiendo aplicaciones
miércoles, enero 22, 2014 at 7:24AM
Abraham

Recientemente Oracle ha anunciado una versión nueva de Java 7, la Update 51, que contiene bastantes parches de seguridad. En esta nueva versión ha cambiado la implementación de la clase sun.reflect.generics.reflectiveObjects. TypeVariableImpl. Por algún motivo que no comprendo completamente, el método equals de esta clase no seguían las prácticas estándares en Java de comprobar si el objeto que se le pasa es exactamente de la misma clase que la clase del objeto sobre el que se ha invocado el método. Así es como solía comenzar el método hasta la Update 51:

  @Override
158    public boolean equals(Object o) {
159        if (o instanceof TypeVariable) {
160            TypeVariable that = (TypeVariable) o;

Código que ahora ha sido cambiado para comprobar si el objeto que se le pasa es una instancia de TypeVariableImpl. Y esto está provocando fallos en varias aplicaciones, siendo probablemente el más notorio la librería Guava de Google (es bastante ilustrativo leer los comentarios en este post), así como muchas otras librerías que dependen de Guava. Este problema ya ha sido recogido en el bug traking de OpenJDK.

Hasta que este tema se resuelva, está bien tenerlo en la cabeza por si está rompiendo directamente tu código, o está rompiendo alguna librería de la que depende es.

Article originally appeared on javaHispano (http://www.javahispano.org/).
See website for complete article licensing information.