JDK8 b121 Win32: javac crash due to Code::arraycode AssertionError: arraycode OBJECT

Samuel Dennis Borlongan srborlongan at gmail.com
Wed Jan 1 04:34:07 PST 2014


Greetings to all (and a blessed new year as well)!

The following code crashes javac in JDK8 b121 Win32 (re:
http://mail.openjdk.java.net/pipermail/lambda-dev/2013-May/009874.html):

public interface Null {
  @SafeVarargs
  public static <INPUT, OUTPUT> OUTPUT functional(INPUT... input) {
    return null;
  }

  // Uncomment to successfully compile in JDK8 b121 Win32
  // public static <INPUT, OUTPUT> OUTPUT functional(INPUT input) {
    // return null;
  // }

  public static <OBJECT> void main(String... arguments) {
    java.util.function.Supplier<java.util.function.Consumer<OBJECT>>
functional =
      () -> Null::functional
    ;
  }
}

/*
An exception has occurred in the compiler (1.8.0-ea).
Please file a bug at the Java Developer Connection (
http://java.sun.com/webapps/bugreport)
after checking the Bug Parade for duplicates. Include your program and the
following diagnostic in your report.
Thank you.
java.lang.AssertionError: arraycode OBJECT
  at com.sun.tools.javac.jvm.Code.arraycode(Code.java:302)
  at com.sun.tools.javac.jvm.Gen.makeNewArray(Gen.java:2028)
  at com.sun.tools.javac.jvm.Gen.visitNewArray(Gen.java:2001)
  at com.sun.tools.javac.tree.JCTree$JCNewArray.accept(JCTree.java:1556)
  at com.sun.tools.javac.jvm.Gen.genExpr(Gen.java:947)
  at com.sun.tools.javac.jvm.Gen.genArgs(Gen.java:966)
  at com.sun.tools.javac.jvm.Gen.visitApply(Gen.java:1905)
  at
com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1459)
  at com.sun.tools.javac.jvm.Gen.genExpr(Gen.java:947)
  at com.sun.tools.javac.jvm.Gen.visitExec(Gen.java:1842)
  at
com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1290)
  at com.sun.tools.javac.jvm.Gen.genDef(Gen.java:737)
  at com.sun.tools.javac.jvm.Gen.genStat(Gen.java:772)
  at com.sun.tools.javac.jvm.Gen.genStat(Gen.java:758)
  at com.sun.tools.javac.jvm.Gen.genStats(Gen.java:809)
  at com.sun.tools.javac.jvm.Gen.visitBlock(Gen.java:1158)
  at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:903)
  at com.sun.tools.javac.jvm.Gen.genDef(Gen.java:737)
  at com.sun.tools.javac.jvm.Gen.genStat(Gen.java:772)
  at com.sun.tools.javac.jvm.Gen.genMethod(Gen.java:1031)
  at com.sun.tools.javac.jvm.Gen.visitMethodDef(Gen.java:994)
  at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:772)
  at com.sun.tools.javac.jvm.Gen.genDef(Gen.java:737)
  at com.sun.tools.javac.jvm.Gen.genClass(Gen.java:2526)
  at com.sun.tools.javac.main.JavaCompiler.genCode(JavaCompiler.java:748)
  at com.sun.tools.javac.main.JavaCompiler.generate(JavaCompiler.java:1570)
  at com.sun.tools.javac.main.JavaCompiler.generate(JavaCompiler.java:1534)
  at com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:904)
  at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:863)
  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)
 */

Thank you!

Samuel Dennis R. Borlongan


More information about the lambda-dev mailing list