Export to GitHub

gentyref - issue #15

IncompatibleClassChangeError when running tests on recent JDK 6


Posted on Nov 27, 2010 by Quick Cat

Some tests are failing with a IncompatibleClassChangeError on a recent JDK. This looks like a bug in the JDK, and probably because of the things we do in the tests; probably not affecting a "normal" application using gentyref.

This was already mentioned by Peter Niederwieser on http://groups.google.com/group/gentyref/msg/5426f783b6084012

example failure: testListOfExtT(com.googlecode.gentyref.GenericTypeReflectorTest) Time elapsed: 0.002 sec <<< ERROR! java.lang.IncompatibleClassChangeError: com.googlecode.gentyref.AbstractGenericsReflectorTest and com.googlecode.gentyref.AbstractGenericsReflectorTest$8C disagree on InnerClasses attribute at java.lang.Class.getDeclaringClass(Native Method) at sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl.<init>(ParameterizedTypeImpl.java:34) at sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl.make(ParameterizedTypeImpl.java:77) at sun.reflect.generics.factory.CoreReflectionFactory.makeParameterizedType(CoreReflectionFactory.java:86) at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:122) at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:31) at sun.reflect.generics.visitor.Reifier.reifyTypeArguments(Reifier.java:50) at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:120) at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:31) at sun.reflect.generics.repository.ClassRepository.getSuperclass(ClassRepository.java:66) at java.lang.Class.getGenericSuperclass(Class.java:677) at com.googlecode.gentyref.TypeToken.extractType(TypeToken.java:39) at com.googlecode.gentyref.TypeToken.<init>(TypeToken.java:27) at com.googlecode.gentyref.AbstractGenericsReflectorTest$26.<init>(AbstractGenericsReflectorTest.java:387) at com.googlecode.gentyref.AbstractGenericsReflectorTest.testListOfExtT(AbstractGenericsReflectorTest.java:387)

Comment #1

Posted on Dec 2, 2010 by Quick Cat

Open bug at oracle: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7003595 Worked around it in gentyref by explicitly adding references to the local classes.

Status: Fixed

Labels:
Type-Defect Priority-Medium FixVersion-1.1.1