javac NullPointerException
Michael Hixson
michael.hixson at gmail.com
Wed Sep 11 19:09:35 PDT 2013
Hello,
This program makes javac crash. I'm using the Windows x64 build of
b106 from http://jdk8.java.net/download.html
package hello;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class TestJavac {
public static void main(String[] args) {
CompletableFuture<String> f = CompletableFuture.supplyAsync(() -> "");
Stream.of(f).collect(Collectors.collectingAndThen(
Collectors.toList(),
TestJavac::toFutureList));
}
static <T> CompletableFuture<List<T>> toFutureList(
Iterable<CompletableFuture<T>> futures) {
return null;
}
}
C:\Development\j8tests\src\main\java\hello>C:\java\java8\bin\javac.exe
TestJavac.java
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.NullPointerException
at com.sun.tools.javac.code.Types.makeFunctionalInterfaceClass(Types.java:638)
at com.sun.tools.javac.comp.LambdaToMethod$LambdaAnalyzerPreprocessor$TranslationContext.<init>(LambdaToMethod.java:1668)
at com.sun.tools.javac.comp.LambdaToMethod$LambdaAnalyzerPreprocessor$ReferenceTranslationContext.<init>(LambdaToMethod.java:1881)
at com.sun.tools.javac.comp.LambdaToMethod$LambdaAnalyzerPreprocessor.makeReferenceContext(LambdaToMethod.java:1622)
at com.sun.tools.javac.comp.LambdaToMethod$LambdaAnalyzerPreprocessor.visitReference(LambdaToMethod.java:1333)
at com.sun.tools.javac.tree.JCTree$JCMemberReference.accept(JCTree.java:1961)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:70)
at com.sun.tools.javac.tree.TreeTranslator.visitApply(TreeTranslator.java:275)
at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1459)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:70)
at com.sun.tools.javac.tree.TreeTranslator.visitApply(TreeTranslator.java:275)
at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1459)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
at com.sun.tools.javac.tree.TreeTranslator.visitExec(TreeTranslator.java:245)
at com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1290)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
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.LambdaToMethod$LambdaAnalyzerPreprocessor.visitBlock(LambdaToMethod.java:1123)
at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:903)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
at com.sun.tools.javac.tree.TreeTranslator.visitMethodDef(TreeTranslator.java:145)
at com.sun.tools.javac.comp.LambdaToMethod$LambdaAnalyzerPreprocessor.visitMethodDef(LambdaToMethod.java:1233)
at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:772)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:70)
at com.sun.tools.javac.tree.TreeTranslator.visitClassDef(TreeTranslator.java:134)
at com.sun.tools.javac.comp.LambdaToMethod$LambdaAnalyzerPreprocessor.visitClassDef(LambdaToMethod.java:1160)
at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:687)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
at com.sun.tools.javac.comp.LambdaToMethod$LambdaAnalyzerPreprocessor.analyzeAndPreprocessClass(LambdaToMethod.java:1113)
at com.sun.tools.javac.comp.LambdaToMethod$LambdaAnalyzerPreprocessor.access$300(LambdaToMethod.java:1083)
at com.sun.tools.javac.comp.LambdaToMethod.visitClassDef(LambdaToMethod.java:218)
at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:687)
at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
at com.sun.tools.javac.comp.LambdaToMethod.translate(LambdaToMethod.java:183)
at com.sun.tools.javac.comp.LambdaToMethod.translate(LambdaToMethod.java:176)
at com.sun.tools.javac.comp.LambdaToMethod.translateTopLevelClass(LambdaToMethod.java:203)
at com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1465)
at com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1350)
at com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:900)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:859)
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:64)
at com.sun.tools.javac.Main.main(Main.java:50)
-Michael
More information about the lambda-dev
mailing list