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.