Max,
See 6520152. For backward compatability anonymous inner classes don't
have the ACC_FINAL bit set.
David
Weijun Wang said the following on 08/04/11 12:24:
serialVersionUID warnings for classes that have had different
generated serialVersionUID's in the past.
sun.security.pkcs11.P11TlsPrfGenerator$1
-currently: -8090049519656411362L;
-JDK 6: -3305145912345854189L;
I find out the reason:
Since 6u11, a final inner class is *not* final anymore.
$ cat A4.java
import java.lang.reflect.Modifier;
public class A4 {
public static void main(String[] args) throws Exception {
Class c = Class.forName(args[0]);
System.out.println(c.getModifiers() & Modifier.FINAL);
}
}
$ java A4 java.lang.String
16
$ java A4 'sun.security.pkcs11.P11TlsPrfGenerator$1'
0
getModifiers() is a native method, and calls JVM_GetClassModifiers. Is
this an intended change?
FYI, the class is defined as
private static final SecretKey NULL_KEY = new SecretKey() {
....
in
http://hg.openjdk.java.net/jdk8/tl/jdk/file/809e8db0c142/src/share/classes/sun/security/pkcs11/P11TlsPrfGenerator.java,
line 100.
Thanks
Max