http://nagoya.apache.org/bugzilla/show_bug.cgi?id=383
*** shadow/383 Thu Feb 1 01:50:35 2001 --- shadow/383.tmp.8693 Thu Feb 1 01:50:36 2001 *************** *** 0 **** --- 1,60 ---- + +============================================================================+ + | fork javac BugRat Report#676 | + +----------------------------------------------------------------------------+ + | Bug #: 383 Product: Ant | + | Status: UNCONFIRMED Version: 1.2 | + | Resolution: Platform: All | + | Severity: Normal OS/Version: All | + | Priority: High Component: Main | + +----------------------------------------------------------------------------+ + | Assigned To: [EMAIL PROTECTED] | + | Reported By: [EMAIL PROTECTED] | + | CC list: Cc: | + +----------------------------------------------------------------------------+ + | URL: | + +============================================================================+ + | DESCRIPTION | + I use ant to build multiple jar files, some which depend on + others in the same build. If I change public API in a "depended + on" jar file, I get + + lyophil-jdbc20: + Compiling 1 source file to /home/dwalend/opensource/lyophilizer/build/lyophil-jdbc20 + An exception has occurred in the compiler (1.3.0). Please file a bug at the Java Developer Connection (http://java.sun.com/cgi-bin/bugreport.cgi). Include your program and the following diagnostic in your report. Thank you. + java.lang.InternalError: jzentry == 0 + at java.util.zip.ZipFile$2.nextElement(ZipFile.java:297) + at com.sun.tools.javac.v8.code.ClassReader.openArchive(ClassReader.java:893) + at com.sun.tools.javac.v8.code.ClassReader.list(ClassReader.java:1095) + at com.sun.tools.javac.v8.code.ClassReader.listAll(ClassReader.java:1180) + at com.sun.tools.javac.v8.code.ClassReader.fillIn(ClassReader.java:1202) + at com.sun.tools.javac.v8.code.ClassReader.complete(ClassReader.java:955) + at com.sun.tools.javac.v8.code.Symbol.complete(Symbol.java:366) + at com.sun.tools.javac.v8.comp.Enter._case(Enter.java:424) + at com.sun.tools.javac.v8.tree.Tree$TopLevel.visit(Tree.java:349) + at com.sun.tools.javac.v8.comp.Enter.classEnter(Enter.java:392) + at com.sun.tools.javac.v8.comp.Enter.classEnter(Enter.java:410) + at com.sun.tools.javac.v8.comp.Enter.main(Enter.java:540) + at com.sun.tools.javac.v8.JavaCompiler.compile(JavaCompiler.java:357) + at com.sun.tools.javac.v8.Main.compile(Main.java:247) + at com.sun.tools.javac.Main.compile(Main.java:26) + at java.lang.reflect.Method.invoke(Native Method) + at org.apache.tools.ant.taskdefs.Javac.doModernCompile(Javac.java) + at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java) + at org.apache.tools.ant.Target.execute(Target.java) + at org.apache.tools.ant.Project.runTarget(Project.java) + at org.apache.tools.ant.Project.executeTarget(Project.java) + at org.apache.tools.ant.Project.executeTargets(Project.java) + at org.apache.tools.ant.Main.runBuild(Main.java) + at org.apache.tools.ant.Main.main(Main.java) + + the first time I build. The next time, everything builds fine. + + I think the problem is this: ant doesn't fork the javac process. + ant has already loaded stale versions of the classes its + compiling. So when it compiles classes that depend on those, + it barfs out that stack trace. I think forking the javac + process would fix it. + + Thanks, + + Dave
