javac exception compiling Lambda expression
Brian Goetz
brian.goetz at oracle.com
Sat Jan 12 14:32:35 PST 2013
Roger, which version of the compiler are you using?
- Promoted Lambda build
- Promoted jdk8 build
- Self-built from (lambda, jdk) repository
On 1/12/2013 5:09 PM, Roger Riggs wrote:
> 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