JDK-8038182 : javac crash with FunctionDescriptorLookupError for invalid functional interface
  • Type: Bug
  • Component: tools
  • Sub-Component: javac
  • Affected Version: 8
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: windows_7
  • CPU: x86_64
  • Submitted: 2014-03-22
  • Updated: 2014-07-29
  • Resolved: 2014-06-19
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 8 JDK 9
8u20Fixed 9 b22Fixed
Description
I'm getting the following exception compiling my source code:

An exception has occurred in the compiler (1.8.0). 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.
com.sun.tools.javac.code.Types$FunctionDescriptorLookupError
        at com.sun.tools.javac.code.Types.<init>(Types.java:121)
        at com.sun.tools.javac.code.Types.instance(Types.java:102)
        at com.sun.tools.javac.jvm.ClassReader.<init>(ClassReader.java:291)
        at com.sun.tools.javac.jvm.ClassReader.instance(ClassReader.java:253)
        at com.sun.tools.javac.main.JavaCompiler.<init>(JavaCompiler.java:351)
        at com.sun.tools.javac.main.JavaCompiler.instance(JavaCompiler.java:91)
        at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.nextContext(JavacProcessingEnvironment.java:1129)
        at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.finalCompiler(JavacProcessingEnvironment.java:930)
        at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1223)
        at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1173)
        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.api.JavacTaskImpl.doCall(JavacTaskImpl.java:129)
        at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:138)
Comments
ManualVerify: Bug verified manually by running tests for nightly build, 1.9.0-ea-langtools-nightly-h781-20140619-b20 Results at http://aurora.ru.oracle.com/functional/faces/RunDetails.xhtml?names=516255.JDK9-LANGTOOLS-NIGHTLY-4
20-06-2014

The bug is reproducible with this test case: class Test { void m () { bar((B b) -> {}); } <E extends A<E>> void bar(I<E> i) {} } class A<E> {} class B<T> extends A<T> {} interface I<E extends A<E>> { void foo(E e){} }
10-06-2014