FULL PRODUCT VERSION :
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
OSX Yosemite
A DESCRIPTION OF THE PROBLEM :
Compiling certain code causes the compiler to crash with an exception
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Create Boom.java with the included contents and compile with javac
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Successful compile
ACTUAL -
Compiler terminates with an AssertionError
ERROR MESSAGES/STACK TRACES THAT OCCUR :
java.lang.AssertionError
at com.sun.tools.javac.util.Assert.error(Assert.java:126)
at com.sun.tools.javac.util.Assert.check(Assert.java:45)
at com.sun.tools.javac.comp.Lower.initField(Lower.java:1868)
at com.sun.tools.javac.comp.Lower.visitMethodDefInternal(Lower.java:2792)
at com.sun.tools.javac.comp.Lower.visitMethodDef(Lower.java:2737)
at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:778)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
at com.sun.tools.javac.comp.Lower.translate(Lower.java:2371)
at com.sun.tools.javac.comp.Lower.visitClassDef(Lower.java:2508)
at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:693)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
at com.sun.tools.javac.comp.Lower.translate(Lower.java:2371)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:70)
at com.sun.tools.javac.tree.TreeTranslator.visitBlock(TreeTranslator.java:162)
at com.sun.tools.javac.comp.Lower.visitBlock(Lower.java:3561)
at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:909)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
at com.sun.tools.javac.comp.Lower.translate(Lower.java:2371)
at com.sun.tools.javac.tree.TreeTranslator.visitMethodDef(TreeTranslator.java:145)
at com.sun.tools.javac.comp.Lower.visitMethodDefInternal(Lower.java:2828)
at com.sun.tools.javac.comp.Lower.visitMethodDef(Lower.java:2737)
at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:778)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
at com.sun.tools.javac.comp.Lower.translate(Lower.java:2371)
at com.sun.tools.javac.comp.Lower.visitClassDef(Lower.java:2508)
at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:693)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
at com.sun.tools.javac.comp.Lower.translate(Lower.java:2371)
at com.sun.tools.javac.comp.Lower.translate(Lower.java:2390)
at com.sun.tools.javac.comp.Lower.translateTopLevelClass(Lower.java:3932)
at com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1512)
at com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1356)
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 ----------
class Boom {
void boom() {
String x = null;
class A {
public void a() {
x.length();
}
};
Runnable r = () -> {
class B {
void b() {
x.length();
new A();
}
}
};
}
}
---------- END SOURCE ----------
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
OSX Yosemite
A DESCRIPTION OF THE PROBLEM :
Compiling certain code causes the compiler to crash with an exception
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Create Boom.java with the included contents and compile with javac
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Successful compile
ACTUAL -
Compiler terminates with an AssertionError
ERROR MESSAGES/STACK TRACES THAT OCCUR :
java.lang.AssertionError
at com.sun.tools.javac.util.Assert.error(Assert.java:126)
at com.sun.tools.javac.util.Assert.check(Assert.java:45)
at com.sun.tools.javac.comp.Lower.initField(Lower.java:1868)
at com.sun.tools.javac.comp.Lower.visitMethodDefInternal(Lower.java:2792)
at com.sun.tools.javac.comp.Lower.visitMethodDef(Lower.java:2737)
at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:778)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
at com.sun.tools.javac.comp.Lower.translate(Lower.java:2371)
at com.sun.tools.javac.comp.Lower.visitClassDef(Lower.java:2508)
at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:693)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
at com.sun.tools.javac.comp.Lower.translate(Lower.java:2371)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:70)
at com.sun.tools.javac.tree.TreeTranslator.visitBlock(TreeTranslator.java:162)
at com.sun.tools.javac.comp.Lower.visitBlock(Lower.java:3561)
at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:909)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
at com.sun.tools.javac.comp.Lower.translate(Lower.java:2371)
at com.sun.tools.javac.tree.TreeTranslator.visitMethodDef(TreeTranslator.java:145)
at com.sun.tools.javac.comp.Lower.visitMethodDefInternal(Lower.java:2828)
at com.sun.tools.javac.comp.Lower.visitMethodDef(Lower.java:2737)
at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:778)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
at com.sun.tools.javac.comp.Lower.translate(Lower.java:2371)
at com.sun.tools.javac.comp.Lower.visitClassDef(Lower.java:2508)
at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:693)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
at com.sun.tools.javac.comp.Lower.translate(Lower.java:2371)
at com.sun.tools.javac.comp.Lower.translate(Lower.java:2390)
at com.sun.tools.javac.comp.Lower.translateTopLevelClass(Lower.java:3932)
at com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1512)
at com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1356)
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 ----------
class Boom {
void boom() {
String x = null;
class A {
public void a() {
x.length();
}
};
Runnable r = () -> {
class B {
void b() {
x.length();
new A();
}
}
};
}
}
---------- END SOURCE ----------
- duplicates
-
JDK-8169345 javac crash when local from enclosing context is captured multiple times
-
- Resolved
-