JDK-6422567 : ClassCastException at com.sun.tools.javac.jvm.ClassReader.readName(ClassReader.java:477)
  • Type: Enhancement
  • Component: tools
  • Sub-Component: javac
  • Affected Version: 6
  • Priority: P4
  • Status: Closed
  • Resolution: Rejected
  • OS: generic
  • CPU: generic
  • Submitted: 2006-05-05
  • Updated: 2025-04-28
  • Resolved: 2025-04-28
Related Reports
Relates :  
Description
http://www.javalobby.org/java/forums/m92015903.html#92015903

I tried B82 but unfortunately 2 of our projects produce the same ClassCastException in the compiler, so I can't stick with it. I don't have much time to investigate it and obviously I can't submit our entire codebase to the bug parade so I haven't reported it. Here is the trace from the exceptions in case anyone has seen anything similar:-

[apt] An exception has occurred in apt (1.6.0-beta2). Please file a bug at the Java Developer Connection (http://java.sun.com/webapps/bugreport) after checking the Bug Parade for duplicates. Include your program and the following diagnostic in your report. Thank you.
[apt] java.lang.ClassCastException: com.sun.tools.javac.code.Symbol$ClassSymbol cannot be cast to com.sun.tools.javac.util.Name
[apt] at com.sun.tools.javac.jvm.ClassReader.readName(ClassReader.java:477)
[apt] at com.sun.tools.javac.jvm.ClassReader.readMemberAttrs(ClassReader.java:995)
[apt] at com.sun.tools.javac.jvm.ClassReader.readCode(ClassReader.java:1049)
[apt] at com.sun.tools.javac.jvm.ClassReader.readMemberAttr(ClassReader.java:803)
[apt] at com.sun.tools.javac.jvm.ClassReader.readMemberAttrs(ClassReader.java:997)
[apt] at com.sun.tools.javac.jvm.ClassReader.readMethod(ClassReader.java:1449)
[apt] at com.sun.tools.javac.jvm.ClassReader.readClass(ClassReader.java:1545)
[apt] at com.sun.tools.javac.jvm.ClassReader.readClassFile(ClassReader.java:1609)
[apt] at com.sun.tools.javac.jvm.ClassReader.fillIn(ClassReader.java:1766)
[apt] at com.sun.tools.javac.jvm.ClassReader.complete(ClassReader.java:1700)
[apt] at com.sun.tools.javac.code.Symbol.complete(Symbol.java:380)
[apt] at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:753)
[apt] at com.sun.tools.javac.jvm.ClassReader.loadClass(ClassReader.java:1856)
[apt] at com.sun.tools.javac.comp.Resolve.loadClass(Resolve.java:852)
[apt] at com.sun.tools.javac.comp.Resolve.findIdentInPackage(Resolve.java:1021)
[apt] at com.sun.tools.javac.comp.Attr.selectSym(Attr.java:1839)
[apt] at com.sun.tools.javac.comp.Attr.visitSelect(Attr.java:1755)
[apt] at com.sun.tools.javac.tree.JCTree$JCFieldAccess.accept(JCTree.java:1518)
[apt] at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:288)
[apt] at com.sun.tools.javac.comp.Attr.attribType(Attr.java:316)
[apt] at com.sun.tools.javac.comp.Attr.attribBase(Attr.java:397)
[apt] at com.sun.tools.javac.comp.MemberEnter.complete(MemberEnter.java:811)
[apt] at com.sun.tools.javac.code.Symbol.complete(Symbol.java:380)
[apt] at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:753)
[apt] at com.sun.tools.javac.comp.Enter.complete(Enter.java:438)
[apt] at com.sun.tools.javac.comp.Enter.main(Enter.java:416)
[apt] at com.sun.tools.apt.main.JavaCompiler.compile(JavaCompiler.java:249)
[apt] at com.sun.tools.apt.main.Main.compile(Main.java:1096)
[apt] at com.sun.tools.apt.main.Main.compile(Main.java:958)
[apt] at com.sun.tools.apt.Main.processing(Main.java:95)
[apt] at com.sun.tools.apt.Main.process(Main.java:43)
[apt] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[apt] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[apt] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[apt] at java.lang.reflect.Method.invoke(Method.java:589)
[apt] at org.apache.tools.ant.taskdefs.compilers.AptCompilerAdapter.execute(AptCompilerAdapter.java:114)
[apt] at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:931)
[apt] at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:757)
[apt] at org.apache.tools.ant.taskdefs.Apt.execute(Apt.java:159)
[apt] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
[apt] at org.apache.tools.ant.Task.perform(Task.java:364)
[apt] at org.apache.tools.ant.Target.execute(Target.java:341)
[apt] at org.apache.tools.ant.Target.performTasks(Target.java:369)
[apt] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
[apt] at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
[apt] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
[apt] at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
[apt] at org.apache.tools.ant.Main.runBuild(Main.java:668)
[apt] at org.apache.tools.ant.Main.startAnt(Main.java:187)
[apt] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:196)
[apt] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:55)

Comments
EVALUATION Based on the crash in javap and the stacktrace it seems reasonable to conclude that this is actually a side effect of an enhancement to javac that is only used in apt or when javac is doing annotation processing: 6194785: ParameterDeclaration.getSimpleName does not return actual name from class files
09-05-2006

EVALUATION How to reproduce: javac -Xprint -cp 6422567.jar CLASSNAME There is also a problem in javap: javap -verbose -private -classpath 6422567.jar CLASSNAME Exception in thread "main" java.lang.ClassCastException: sun.tools.javap.CPX cannot be cast to java.lang.String at sun.tools.javap.ClassData.getString(ClassData.java:215) at sun.tools.javap.AttrData.getAttrName(AttrData.java:50) at sun.tools.javap.JavapPrinter.printMethodAttributes(JavapPrinter.java:249) at sun.tools.javap.JavapPrinter.printMethods(JavapPrinter.java:213) at sun.tools.javap.JavapPrinter.print(JavapPrinter.java:40) at sun.tools.javap.Main.displayResults(Main.java:202) at sun.tools.javap.Main.perform(Main.java:61) at sun.tools.javap.Main.entry(Main.java:49) at sun.tools.javap.Main.main(Main.java:34)
09-05-2006

EVALUATION It turns out that the class file being read is actually broken. It would be nice if we can improve the error message so the compiler helps debugging the problem.
09-05-2006

EVALUATION It is likely fixed as a side effect of 6356636.
05-05-2006