-
Bug
-
Resolution: Fixed
-
P4
-
6, 7, 8, 9
-
b129
-
generic
-
generic
-
Verified
FULL PRODUCT VERSION :
java version "1.8.0_72"
Java(TM) SE Runtime Environment (build 1.8.0_72-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.72-b15, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Happens on both Linux and Mac:
Mac: Darwin Kernel Version 15.5.0: Tue Apr 19 18:36:36 PDT 2016; root:xnu-3248.50.21~8/RELEASE_X86_64 x86_64
Linux: 3.13.0-92-generic #139-Ubuntu SMP Tue Jun 28 20:42:26 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
A DESCRIPTION OF THE PROBLEM :
Compile the above code and this error happens:
An exception has occurred in the compiler (1.8.0_72). Please file a bug against the Java compiler via the Java bug reporting page (http://bugreport.java.com) after checking the Bug Database (http://bugs.java.com) for duplicates. Include your program and the following diagnostic in your report. Thank you.
java.lang.NullPointerException
at com.sun.tools.javac.code.Types.capture(Types.java:4050)
at com.sun.tools.javac.code.Types.capture(Types.java:4054)
at com.sun.tools.javac.comp.Attr.capture(Attr.java:4445)
at com.sun.tools.javac.comp.Attr.visitApply(Attr.java:1831)
at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1465)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:566)
at com.sun.tools.javac.comp.Attr.attribExpr(Attr.java:615)
at com.sun.tools.javac.comp.Attr.visitExec(Attr.java:1583)
at com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1296)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:566)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:635)
at com.sun.tools.javac.comp.Attr.attribStats(Attr.java:651)
at com.sun.tools.javac.comp.Attr.visitBlock(Attr.java:1114)
at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:909)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:566)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:635)
at com.sun.tools.javac.comp.Attr.visitMethodDef(Attr.java:1003)
at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:778)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:566)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:635)
at com.sun.tools.javac.comp.Attr.attribClassBody(Attr.java:4340)
at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:4248)
at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:4177)
at com.sun.tools.javac.comp.Attr.attrib(Attr.java:4152)
at com.sun.tools.javac.main.JavaCompiler.attribute(JavaCompiler.java:1248)
at com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:901)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:860)
at com.sun.tools.javac.main.Main.compile(Main.java:523)
at com.sun.tools.javac.main.Main.compile(Main.java:381)
at com.sun.tools.javac.main.Main.compile(Main.java:370)
at com.sun.tools.javac.main.Main.compile(Main.java:361)
at com.sun.tools.javac.Main.compile(Main.java:56)
at com.sun.tools.javac.Main.main(Main.java:42)
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1)save the code to file named T.java
2) compile the code with:
javac T.java
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
should complete with its own error message or compile successfully
ACTUAL -
get error message with NPE
ERROR MESSAGES/STACK TRACES THAT OCCUR :
An exception has occurred in the compiler (1.8.0_72). Please file a bug against the Java compiler via the Java bug reporting page (http://bugreport.java.com) after checking the Bug Database (http://bugs.java.com) for duplicates. Include your program and the following diagnostic in your report. Thank you.
java.lang.NullPointerException
at com.sun.tools.javac.code.Types.capture(Types.java:4050)
at com.sun.tools.javac.code.Types.capture(Types.java:4054)
at com.sun.tools.javac.comp.Attr.capture(Attr.java:4445)
at com.sun.tools.javac.comp.Attr.visitApply(Attr.java:1831)
at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1465)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:566)
at com.sun.tools.javac.comp.Attr.attribExpr(Attr.java:615)
at com.sun.tools.javac.comp.Attr.visitExec(Attr.java:1583)
at com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1296)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:566)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:635)
at com.sun.tools.javac.comp.Attr.attribStats(Attr.java:651)
at com.sun.tools.javac.comp.Attr.visitBlock(Attr.java:1114)
at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:909)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:566)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:635)
at com.sun.tools.javac.comp.Attr.visitMethodDef(Attr.java:1003)
at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:778)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:566)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:635)
at com.sun.tools.javac.comp.Attr.attribClassBody(Attr.java:4340)
at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:4248)
at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:4177)
at com.sun.tools.javac.comp.Attr.attrib(Attr.java:4152)
at com.sun.tools.javac.main.JavaCompiler.attribute(JavaCompiler.java:1248)
at com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:901)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:860)
at com.sun.tools.javac.main.Main.compile(Main.java:523)
at com.sun.tools.javac.main.Main.compile(Main.java:381)
at com.sun.tools.javac.main.Main.compile(Main.java:370)
at com.sun.tools.javac.main.Main.compile(Main.java:361)
at com.sun.tools.javac.Main.compile(Main.java:56)
at com.sun.tools.javac.Main.main(Main.java:42)
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
//Name this code T.java and compile with javac T.java
import java.util.*;
public class T {
public static void main(String [] arg) {
T t = new T();
t.getClass();
}
public void getClass() {
Fred1 f = new Fred1();
System.out.println( "fred classname: " + f.getClassName());
}
abstract class Fred {
public String getClassName() {
return this.getClass().getSimpleName();
}
}
class Fred1 extends Fred {
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
move inner classes to their own source file probably fixes it
java version "1.8.0_72"
Java(TM) SE Runtime Environment (build 1.8.0_72-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.72-b15, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Happens on both Linux and Mac:
Mac: Darwin Kernel Version 15.5.0: Tue Apr 19 18:36:36 PDT 2016; root:xnu-3248.50.21~8/RELEASE_X86_64 x86_64
Linux: 3.13.0-92-generic #139-Ubuntu SMP Tue Jun 28 20:42:26 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
A DESCRIPTION OF THE PROBLEM :
Compile the above code and this error happens:
An exception has occurred in the compiler (1.8.0_72). Please file a bug against the Java compiler via the Java bug reporting page (http://bugreport.java.com) after checking the Bug Database (http://bugs.java.com) for duplicates. Include your program and the following diagnostic in your report. Thank you.
java.lang.NullPointerException
at com.sun.tools.javac.code.Types.capture(Types.java:4050)
at com.sun.tools.javac.code.Types.capture(Types.java:4054)
at com.sun.tools.javac.comp.Attr.capture(Attr.java:4445)
at com.sun.tools.javac.comp.Attr.visitApply(Attr.java:1831)
at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1465)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:566)
at com.sun.tools.javac.comp.Attr.attribExpr(Attr.java:615)
at com.sun.tools.javac.comp.Attr.visitExec(Attr.java:1583)
at com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1296)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:566)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:635)
at com.sun.tools.javac.comp.Attr.attribStats(Attr.java:651)
at com.sun.tools.javac.comp.Attr.visitBlock(Attr.java:1114)
at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:909)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:566)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:635)
at com.sun.tools.javac.comp.Attr.visitMethodDef(Attr.java:1003)
at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:778)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:566)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:635)
at com.sun.tools.javac.comp.Attr.attribClassBody(Attr.java:4340)
at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:4248)
at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:4177)
at com.sun.tools.javac.comp.Attr.attrib(Attr.java:4152)
at com.sun.tools.javac.main.JavaCompiler.attribute(JavaCompiler.java:1248)
at com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:901)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:860)
at com.sun.tools.javac.main.Main.compile(Main.java:523)
at com.sun.tools.javac.main.Main.compile(Main.java:381)
at com.sun.tools.javac.main.Main.compile(Main.java:370)
at com.sun.tools.javac.main.Main.compile(Main.java:361)
at com.sun.tools.javac.Main.compile(Main.java:56)
at com.sun.tools.javac.Main.main(Main.java:42)
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1)save the code to file named T.java
2) compile the code with:
javac T.java
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
should complete with its own error message or compile successfully
ACTUAL -
get error message with NPE
ERROR MESSAGES/STACK TRACES THAT OCCUR :
An exception has occurred in the compiler (1.8.0_72). Please file a bug against the Java compiler via the Java bug reporting page (http://bugreport.java.com) after checking the Bug Database (http://bugs.java.com) for duplicates. Include your program and the following diagnostic in your report. Thank you.
java.lang.NullPointerException
at com.sun.tools.javac.code.Types.capture(Types.java:4050)
at com.sun.tools.javac.code.Types.capture(Types.java:4054)
at com.sun.tools.javac.comp.Attr.capture(Attr.java:4445)
at com.sun.tools.javac.comp.Attr.visitApply(Attr.java:1831)
at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1465)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:566)
at com.sun.tools.javac.comp.Attr.attribExpr(Attr.java:615)
at com.sun.tools.javac.comp.Attr.visitExec(Attr.java:1583)
at com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1296)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:566)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:635)
at com.sun.tools.javac.comp.Attr.attribStats(Attr.java:651)
at com.sun.tools.javac.comp.Attr.visitBlock(Attr.java:1114)
at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:909)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:566)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:635)
at com.sun.tools.javac.comp.Attr.visitMethodDef(Attr.java:1003)
at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:778)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:566)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:635)
at com.sun.tools.javac.comp.Attr.attribClassBody(Attr.java:4340)
at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:4248)
at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:4177)
at com.sun.tools.javac.comp.Attr.attrib(Attr.java:4152)
at com.sun.tools.javac.main.JavaCompiler.attribute(JavaCompiler.java:1248)
at com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:901)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:860)
at com.sun.tools.javac.main.Main.compile(Main.java:523)
at com.sun.tools.javac.main.Main.compile(Main.java:381)
at com.sun.tools.javac.main.Main.compile(Main.java:370)
at com.sun.tools.javac.main.Main.compile(Main.java:361)
at com.sun.tools.javac.Main.compile(Main.java:56)
at com.sun.tools.javac.Main.main(Main.java:42)
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
//Name this code T.java and compile with javac T.java
import java.util.*;
public class T {
public static void main(String [] arg) {
T t = new T();
t.getClass();
}
public void getClass() {
Fred1 f = new Fred1();
System.out.println( "fred classname: " + f.getClassName());
}
abstract class Fred {
public String getClassName() {
return this.getClass().getSimpleName();
}
}
class Fred1 extends Fred {
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
move inner classes to their own source file probably fixes it