-
Bug
-
Resolution: Fixed
-
P3
-
6u15
-
b08
-
x86
-
windows_xp
-
Verified
FULL PRODUCT VERSION :
javac 1.6.0_11
java version "1.6.0_15"
Java(TM) SE Runtime Environment (build 1.6.0_15-b03)
Java HotSpot(TM) Client VM (build 14.1-b02, mixed mode, sharing)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows XP [Version 1.5.2600]
A DESCRIPTION OF THE PROBLEM :
I created a class file by hand and tried to compile a java file that references it. javac crashed and gave me a stack trace.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
the following command on the files mentioned later
javac EmptyCall.java
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
a class verification error telling me that my binary .class file was corrupt
ACTUAL -
javac crashed and gave me a stack trace
ERROR MESSAGES/STACK TRACES THAT OCCUR :
An exception has occurred in the compiler (1.6.0_11). 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.ArrayIndexOutOfBoundsException: 1091
at com.sun.tools.javac.jvm.ClassReader.readPool(ClassReader.java:386)
at com.sun.tools.javac.jvm.ClassReader.readClassSymbol(ClassReader.java:475)
at com.sun.tools.javac.jvm.ClassReader.readClass(ClassReader.java:1545)
at com.sun.tools.javac.jvm.ClassReader.readClassFile(ClassReader.java:1658)
at com.sun.tools.javac.jvm.ClassReader.fillIn(ClassReader.java:1845)
at com.sun.tools.javac.jvm.ClassReader.complete(ClassReader.java:1777)
at com.sun.tools.javac.code.Symbol.complete(Symbol.java:386)
at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:758)
at com.sun.tools.javac.jvm.ClassReader.loadClass(ClassReader.java:1951)
at com.sun.tools.javac.comp.Resolve.loadClass(Resolve.java:842)
at com.sun.tools.javac.comp.Resolve.findGlobalType(Resolve.java:901)
at com.sun.tools.javac.comp.Resolve.findType(Resolve.java:957)
at com.sun.tools.javac.comp.Resolve.findIdent(Resolve.java:986)
at com.sun.tools.javac.comp.Resolve.resolveIdent(Resolve.java:1162)
at com.sun.tools.javac.comp.Attr.visitIdent(Attr.java:1714)
at com.sun.tools.javac.tree.JCTree$JCIdent.accept(JCTree.java:1547)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:360)
at com.sun.tools.javac.comp.Attr.attribType(Attr.java:390)
at com.sun.tools.javac.comp.MemberEnter.visitVarDef(MemberEnter.java:607)
at com.sun.tools.javac.tree.JCTree$JCVariableDecl.accept(JCTree.java:691)
at com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:387)
at com.sun.tools.javac.comp.Attr.visitVarDef(Attr.java:653)
at com.sun.tools.javac.tree.JCTree$JCVariableDecl.accept(JCTree.java:691)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:360)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:397)
at com.sun.tools.javac.comp.Attr.attribStats(Attr.java:413)
at com.sun.tools.javac.comp.Attr.visitBlock(Attr.java:715)
at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:739)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:360)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:397)
at com.sun.tools.javac.comp.Attr.visitMethodDef(Attr.java:634)
at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:639)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:360)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:397)
at com.sun.tools.javac.comp.Attr.attribClassBody(Attr.java:2697)
at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:2628)
at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:2564)
at com.sun.tools.javac.main.JavaCompiler.attribute(JavaCompiler.java:1036)
at com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:765)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:730)
at com.sun.tools.javac.main.Main.compile(Main.java:353)
at com.sun.tools.javac.main.Main.compile(Main.java:279)
at com.sun.tools.javac.main.Main.compile(Main.java:270)
at com.sun.tools.javac.Main.compile(Main.java:69)
at com.sun.tools.javac.Main.main(Main.java:54)
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
binary for the .class file called "Empty.class"
ca fe ba be 00 00 00 32 00 07 01 00 05 45 6d 70 74 79 07 00 01 01 00 10 6a 61 76 61 2f 6c 61 6e 67 2f 4f 62 6a 65 63 74 07 00 03 01 00 06 3c 69 6e 69 74 3e 01 00 03 28 29 56 01 00 04 43 6f 64 65 00 21 00 02 00 04 00 00 00 00 00 01 00 01 00 05 00 06 00 01 00 07 00 00 00 13 00 00 00 00 00 00 00 01 b1 00 00 00 00 00 00
source for java file called "EmptyCall.java"
public class EmptyCall
{
public static void main(String[] args)
{
Empty e;
System.out.println("+++ PASS");
}
}
---------- END SOURCE ----------
javac 1.6.0_11
java version "1.6.0_15"
Java(TM) SE Runtime Environment (build 1.6.0_15-b03)
Java HotSpot(TM) Client VM (build 14.1-b02, mixed mode, sharing)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows XP [Version 1.5.2600]
A DESCRIPTION OF THE PROBLEM :
I created a class file by hand and tried to compile a java file that references it. javac crashed and gave me a stack trace.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
the following command on the files mentioned later
javac EmptyCall.java
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
a class verification error telling me that my binary .class file was corrupt
ACTUAL -
javac crashed and gave me a stack trace
ERROR MESSAGES/STACK TRACES THAT OCCUR :
An exception has occurred in the compiler (1.6.0_11). 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.ArrayIndexOutOfBoundsException: 1091
at com.sun.tools.javac.jvm.ClassReader.readPool(ClassReader.java:386)
at com.sun.tools.javac.jvm.ClassReader.readClassSymbol(ClassReader.java:475)
at com.sun.tools.javac.jvm.ClassReader.readClass(ClassReader.java:1545)
at com.sun.tools.javac.jvm.ClassReader.readClassFile(ClassReader.java:1658)
at com.sun.tools.javac.jvm.ClassReader.fillIn(ClassReader.java:1845)
at com.sun.tools.javac.jvm.ClassReader.complete(ClassReader.java:1777)
at com.sun.tools.javac.code.Symbol.complete(Symbol.java:386)
at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:758)
at com.sun.tools.javac.jvm.ClassReader.loadClass(ClassReader.java:1951)
at com.sun.tools.javac.comp.Resolve.loadClass(Resolve.java:842)
at com.sun.tools.javac.comp.Resolve.findGlobalType(Resolve.java:901)
at com.sun.tools.javac.comp.Resolve.findType(Resolve.java:957)
at com.sun.tools.javac.comp.Resolve.findIdent(Resolve.java:986)
at com.sun.tools.javac.comp.Resolve.resolveIdent(Resolve.java:1162)
at com.sun.tools.javac.comp.Attr.visitIdent(Attr.java:1714)
at com.sun.tools.javac.tree.JCTree$JCIdent.accept(JCTree.java:1547)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:360)
at com.sun.tools.javac.comp.Attr.attribType(Attr.java:390)
at com.sun.tools.javac.comp.MemberEnter.visitVarDef(MemberEnter.java:607)
at com.sun.tools.javac.tree.JCTree$JCVariableDecl.accept(JCTree.java:691)
at com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:387)
at com.sun.tools.javac.comp.Attr.visitVarDef(Attr.java:653)
at com.sun.tools.javac.tree.JCTree$JCVariableDecl.accept(JCTree.java:691)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:360)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:397)
at com.sun.tools.javac.comp.Attr.attribStats(Attr.java:413)
at com.sun.tools.javac.comp.Attr.visitBlock(Attr.java:715)
at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:739)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:360)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:397)
at com.sun.tools.javac.comp.Attr.visitMethodDef(Attr.java:634)
at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:639)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:360)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:397)
at com.sun.tools.javac.comp.Attr.attribClassBody(Attr.java:2697)
at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:2628)
at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:2564)
at com.sun.tools.javac.main.JavaCompiler.attribute(JavaCompiler.java:1036)
at com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:765)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:730)
at com.sun.tools.javac.main.Main.compile(Main.java:353)
at com.sun.tools.javac.main.Main.compile(Main.java:279)
at com.sun.tools.javac.main.Main.compile(Main.java:270)
at com.sun.tools.javac.Main.compile(Main.java:69)
at com.sun.tools.javac.Main.main(Main.java:54)
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
binary for the .class file called "Empty.class"
ca fe ba be 00 00 00 32 00 07 01 00 05 45 6d 70 74 79 07 00 01 01 00 10 6a 61 76 61 2f 6c 61 6e 67 2f 4f 62 6a 65 63 74 07 00 03 01 00 06 3c 69 6e 69 74 3e 01 00 03 28 29 56 01 00 04 43 6f 64 65 00 21 00 02 00 04 00 00 00 00 00 01 00 01 00 05 00 06 00 01 00 07 00 00 00 13 00 00 00 00 00 00 00 01 b1 00 00 00 00 00 00
source for java file called "EmptyCall.java"
public class EmptyCall
{
public static void main(String[] args)
{
Empty e;
System.out.println("+++ PASS");
}
}
---------- END SOURCE ----------