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