JDK-8036007 : javac crashes when encountering an unresolvable interface
  • Type: Bug
  • Component: tools
  • Sub-Component: javac
  • Affected Version: 8
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2014-02-28
  • Updated: 2015-01-21
  • Resolved: 2014-03-18
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 b06Fixed
Related Reports
Relates :  
Relates :  
Description
Using the attached files as a test case:
$ javac RankTestDep.java 
$ rm Closeable.class 
$ javac -XDdev RankTest.java 
RankTest.java:38: error: cannot access Closeable
        s.call();
         ^
  class file for Closeable not found
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.
java.lang.AssertionError
        at com.sun.tools.javac.code.Types.rank(Types.java:3218)
        at com.sun.tools.javac.code.Types.rank(Types.java:3190)
        at com.sun.tools.javac.code.Types.rank(Types.java:3194)
        at com.sun.tools.javac.code.Symbol$TypeSymbol.precedes(Symbol.java:703)
        at com.sun.tools.javac.code.Types.insert(Types.java:3335)
        at com.sun.tools.javac.code.Types.closure(Types.java:3315)
        at com.sun.tools.javac.comp.Resolve.findMethod(Resolve.java:1674)
        at com.sun.tools.javac.comp.Resolve.findMethod(Resolve.java:1641)
        at com.sun.tools.javac.comp.Resolve$9.doLookup(Resolve.java:2397)
        at com.sun.tools.javac.comp.Resolve$BasicLookupHelper.lookup(Resolve.java:3056)
        at com.sun.tools.javac.comp.Resolve.lookupMethod(Resolve.java:3307)
        at com.sun.tools.javac.comp.Resolve.resolveQualifiedMethod(Resolve.java:2394)
        at com.sun.tools.javac.comp.Resolve.resolveQualifiedMethod(Resolve.java:2388)
        at com.sun.tools.javac.comp.Attr.selectSym(Attr.java:3363)
        at com.sun.tools.javac.comp.Attr.visitSelect(Attr.java:3257)
        at com.sun.tools.javac.tree.JCTree$JCFieldAccess.accept(JCTree.java:1891)
        at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:596)
        at com.sun.tools.javac.comp.Attr.visitApply(Attr.java:1828)
        at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1459)
        at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:596)
        at com.sun.tools.javac.comp.Attr.attribExpr(Attr.java:645)
        at com.sun.tools.javac.comp.Attr.visitExec(Attr.java:1596)
        at com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1290)
        at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:596)
        at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:665)
        at com.sun.tools.javac.comp.Attr.attribStats(Attr.java:681)
        at com.sun.tools.javac.comp.Attr.visitBlock(Attr.java:1127)
        at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:903)
        at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:596)
        at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:665)
        at com.sun.tools.javac.comp.Attr.visitMethodDef(Attr.java:1020)
        at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:772)
        at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:596)
        at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:665)
        at com.sun.tools.javac.comp.Attr.attribClassBody(Attr.java:4305)
        at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:4215)
        at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:4149)
        at com.sun.tools.javac.comp.Attr.attrib(Attr.java:4124)
        at com.sun.tools.javac.main.JavaCompiler.attribute(JavaCompiler.java:1251)
        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)

This is with:
$ javac -fullversion
javac full version "1.8.0-b129"

Found while building NetBeans.
Comments
SQE is ok take the fix in 8u20.
25-06-2014

SQE: OK from Mikhail's team. I guess we may need OK from UR SQE
25-06-2014

Need SQE-OK prior to approval
24-06-2014

Priority raised to P3, reflecting the P3 nature of JDK-8034147, which depends on this.
24-06-2014

The fix for JDK-8034147 coincidentally depends on this fix.
24-06-2014