javac exception compiling Lambda expression
Roger Riggs
Roger.Riggs at oracle.com
Sat Jan 12 14:09:30 PST 2013
In converting some anonymous inner classes to lambda expressions
I get a compiler stack trace.
Created issue JDK-8006140:
The offending test case .java file is:
public interface ChronoLocalDate1
extends Comparable<ChronoLocalDate1> {
// Original
public static final Comparator<ChronoLocalDate1> DATE_COMPARATOR1 =
new Comparator() {
public int compare(Object date1, Object date2) {
return 0;
}
};
// Netbeans suggested turning the comparator above into this.
public static final Comparator<ChronoLocalDate1> DATE_COMPARATOR3 =
( date1, date2) -> 0;
}
Stack Trace:
java.lang.NullPointerException
at com.sun.tools.javac.jvm.Code.emitop0(Code.java:537)
at com.sun.tools.javac.jvm.Items$SelfItem.load(Items.java:367)
at com.sun.tools.javac.jvm.Gen.genArgs(Gen.java:852)
at com.sun.tools.javac.jvm.Gen.visitApply(Gen.java:1686)
at
com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1385)
at com.sun.tools.javac.jvm.Gen.genExpr(Gen.java:833)
at com.sun.tools.javac.jvm.Gen.visitAssign(Gen.java:1784)
at com.sun.tools.javac.tree.JCTree$JCAssign.accept(JCTree.java:1580)
at com.sun.tools.javac.jvm.Gen.genExpr(Gen.java:833)
at com.sun.tools.javac.jvm.Gen.visitExec(Gen.java:1634)
at
com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1216)
at com.sun.tools.javac.jvm.Gen.genDef(Gen.java:680)
at com.sun.tools.javac.jvm.Gen.genStat(Gen.java:715)
at com.sun.tools.javac.jvm.Gen.genStat(Gen.java:701)
at com.sun.tools.javac.jvm.Gen.genStats(Gen.java:752)
at com.sun.tools.javac.jvm.Gen.visitBlock(Gen.java:1030)
at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:829)
at com.sun.tools.javac.jvm.Gen.genDef(Gen.java:680)
at com.sun.tools.javac.jvm.Gen.genStat(Gen.java:715)
at com.sun.tools.javac.jvm.Gen.genMethod(Gen.java:908)
at com.sun.tools.javac.jvm.Gen.visitMethodDef(Gen.java:881)
at
com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:717)
at com.sun.tools.javac.jvm.Gen.genDef(Gen.java:680)
at com.sun.tools.javac.jvm.Gen.genClass(Gen.java:2240)
at
com.sun.tools.javac.main.JavaCompiler.genCode(JavaCompiler.java:751)
at
com.sun.tools.javac.main.JavaCompiler.generate(JavaCompiler.java:1520)
at
com.sun.tools.javac.main.JavaCompiler.generate(JavaCompiler.java:1484)
at
com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:907)
at
com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:866)
at com.sun.tools.javac.main.Main.compile(Main.java:482)
at com.sun.tools.javac.main.Main.compile(Main.java:363)
at com.sun.tools.javac.main.Main.compile(Main.java:352)
at com.sun.tools.javac.main.Main.compile(Main.java:343)
at com.sun.tools.javac.Main.compile(Main.java:76)
at com.sun.tools.javac.Main.main(Main.java:61)
The fails in JDK8 builds b67 and b72 and recent private builds.
More information about the lambda-dev
mailing list