JDK-5090006 : javac fails with assertion error
  • Type: Bug
  • Component: tools
  • Sub-Component: javac
  • Affected Version: 5.0
  • Priority: P1
  • Status: Resolved
  • Resolution: Fixed
  • OS: solaris_9
  • CPU: sparc
  • Submitted: 2004-08-20
  • Updated: 2012-10-09
  • Resolved: 2004-09-25
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
5.0u1 01Fixed
Related Reports
Relates :  
Description
I'm a developer on the jaxrpc team at Sun. Am seeing an error when generating/compiling 
client code. The stack trace is below -- am working on creating a workspace so that the error
can be replicated with a command line javac call.

Jdk version:
java version "1.5.0-rc"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-rc-b63)
Java HotSpot(TM) Server VM (build 1.5.0-rc-b63, mixed mode)

Part of the output from ant:
compile-client:
Compiling 9 source files to /kauai/beach/jaxrpc-ri/test-client-server/build/temp/classes
An exception has occurred in the compiler (1.5.0-beta3). 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.
java.lang.AssertionError
	at com.sun.tools.javac.jvm.ClassReader.fillIn(ClassReader.java:1550)
	at com.sun.tools.javac.jvm.ClassReader.complete(ClassReader.java:1518)
	at com.sun.tools.javac.code.Symbol.complete(Symbol.java:355)
	at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:614)
	at com.sun.tools.javac.code.Symbol$ClassSymbol.members(Symbol.java:557)
	at com.sun.tools.javac.jvm.ClassReader$AnnotationDeproxy.findAccessMethod(ClassReader.java:1065)
	at com.sun.tools.javac.jvm.ClassReader$AnnotationDeproxy.deproxyCompound(ClassReader.java:1057)
	at com.sun.tools.javac.jvm.ClassReader$AnnotationDeproxy.deproxyCompoundList(ClassReader.java:1046)
	at com.sun.tools.javac.jvm.ClassReader$AnnotationCompleter.enterAnnotation(ClassReader.java:1195)
	at com.sun.tools.javac.comp.Annotate.flush(Annotate.java:94)
	at com.sun.tools.javac.jvm.ClassReader.complete(ClassReader.java:1523)
	at com.sun.tools.javac.code.Symbol.complete(Symbol.java:355)
	at com.sun.tools.javac.code.Symbol$PackageSymbol.members(Symbol.java:474)
	at com.sun.tools.javac.jvm.ClassReader.enterClass(ClassReader.java:1487)
	at com.sun.tools.javac.jvm.ClassReader.readInnerClasses(ClassReader.java:1339)
	at com.sun.tools.javac.jvm.ClassReader.readClassAttr(ClassReader.java:844)
	at com.sun.tools.javac.jvm.ClassReader.readClassAttrs(ClassReader.java:864)
	at com.sun.tools.javac.jvm.ClassReader.readClass(ClassReader.java:1294)
	at com.sun.tools.javac.jvm.ClassReader.readClassFile(ClassReader.java:1380)
	at com.sun.tools.javac.jvm.ClassReader.fillIn(ClassReader.java:1565)
	at com.sun.tools.javac.jvm.ClassReader.complete(ClassReader.java:1518)
	at com.sun.tools.javac.code.Symbol.complete(Symbol.java:355)
	at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:614)
	at com.sun.tools.javac.code.Symbol$ClassSymbol.flags(Symbol.java:552)
	at com.sun.tools.javac.code.Types$IsCastableFcn.visitClassType(Types.java:989)
	at com.sun.tools.javac.code.Type$ClassType.accept(Type.java:473)
	at com.sun.tools.javac.code.Types$IsCastableFcn.isCastableNoBoxing(Types.java:934)
	at com.sun.tools.javac.code.Types$IsCastableFcn.isCastable(Types.java:926)
	at com.sun.tools.javac.code.Types.isCastable(Types.java:913)
	at com.sun.tools.javac.comp.Check.checkCastable(Check.java:382)
	at com.sun.tools.javac.comp.Attr.visitTypeCast(Attr.java:1505)
	at com.sun.tools.javac.tree.Tree$TypeCast.accept(Tree.java:946)
	at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:256)
	at com.sun.tools.javac.comp.Attr.attribExpr(Attr.java:271)
	at com.sun.tools.javac.comp.Attr.visitAssign(Attr.java:1385)
	at com.sun.tools.javac.tree.Tree$Assign.accept(Tree.java:887)
	at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:256)
	at com.sun.tools.javac.comp.Attr.attribExpr(Attr.java:278)
	at com.sun.tools.javac.comp.Attr.visitExec(Attr.java:856)
	at com.sun.tools.javac.tree.Tree$Exec.accept(Tree.java:734)
	at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:256)
	at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:291)
	at com.sun.tools.javac.comp.Attr.attribStats(Attr.java:307)
	at com.sun.tools.javac.comp.Attr.visitBlock(Attr.java:561)
	at com.sun.tools.javac.tree.Tree$Block.accept(Tree.java:540)
	at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:256)
	at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:291)
	at com.sun.tools.javac.comp.Attr.visitTry(Attr.java:727)
	at com.sun.tools.javac.tree.Tree$Try.accept(Tree.java:674)
	at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:256)
	at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:291)
	at com.sun.tools.javac.comp.Attr.attribStats(Attr.java:307)
	at com.sun.tools.javac.comp.Attr.visitBlock(Attr.java:561)
	at com.sun.tools.javac.tree.Tree$Block.accept(Tree.java:540)
	at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:256)
	at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:291)
	at com.sun.tools.javac.comp.Attr.visitMethodDef(Attr.java:494)
	at com.sun.tools.javac.tree.Tree$MethodDef.accept(Tree.java:482)
	at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:256)
	at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:291)
	at com.sun.tools.javac.comp.Attr.attribClassBody(Attr.java:2424)
	at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:2357)
	at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:2326)
	at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:2306)
	at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:410)
	at com.sun.tools.javac.main.Main.compile(Main.java:592)
	at com.sun.tools.javac.main.Main.compile(Main.java:544)
	at com.sun.tools.javac.Main.compile(Main.java:58)
	at com.sun.tools.javac.Main.main(Main.java:48)

BUILD FAILED
file:/kauai/beach/jaxrpc-ri/test-client-server/config/common-targets.xml:265: Compile failed; see the compiler error output for details.



###@###.### 2004-08-20
###@###.### 2004-08-23

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: 1.5.0_01 mustang FIXED IN: 1.5.0_01 INTEGRATED IN: 1.5.0_01
26-09-2004

EVALUATION I'm marking this bug as incomplete until I get a reproducible example. ###@###.### 2004-08-20 I can reproduce the bug now. ###@###.### 2004-08-24 I'm still not sure what is causing this behavior. It could be a malformed class file or it could be an unforseen interaction with completing annotations. I will continue evaluating and hopefully know more tomorrow. ###@###.### 2004-08-24 The submitter has been very helpful in reconstructing this problem and I now have a correct fix for it. However, it is too late for Tiger. Perhaps an update release. ###@###.### 2004-08-25
25-08-2004

SUGGESTED FIX This patch for com.sun.tools.javac.jvm.ClassReader.java makes the problem go away: --- /tmp/geta17401 2004-08-24 19:40:00.024893536 -0700 +++ ClassReader.java 2004-08-24 19:39:54.923669040 -0700 @@ -1516,11 +1516,11 @@ c.members_field = new Scope.ErrorScope(c); // make sure it's always defined completeOwners(c.owner); fillIn(c); + annotate.flush(); // finish attaching annotations } else if (sym.kind == PCK) { PackageSymbol p = (PackageSymbol)sym; fillIn(p); } - annotate.flush(); // finish attaching annotations } /** complete up through the enclosing package. */ Not sure if this is a correct change, though. ###@###.### 2004-08-24
24-08-2004

WORK AROUND Add: import javax.jws.WebService; to the problematic file. ###@###.### 2004-08-24
24-08-2004