JDK-8133312 : Nullpoint-Exception during compilation
  • Type: Bug
  • Component: tools
  • Sub-Component: javac
  • Affected Version: 8u51,8u60
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • OS: other
  • CPU: x86
  • Submitted: 2015-08-10
  • Updated: 2015-08-12
  • Resolved: 2015-08-12
Related Reports
Duplicate :  
Relates :  
Relates :  
Description
FULL PRODUCT VERSION :


A DESCRIPTION OF THE PROBLEM :
Nullpoint-Exception during compilation


ERROR MESSAGES/STACK TRACES THAT OCCUR :
javac F.java
An exception has occurred in the compiler (1.8.0_51). 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.comp.MemberEnter.baseEnv(MemberEnter.java:1388)
	at com.sun.tools.javac.comp.MemberEnter.complete(MemberEnter.java:1046)
	at com.sun.tools.javac.code.Symbol.complete(Symbol.java:574)
	at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:1037)
	at com.sun.tools.javac.code.Symbol$ClassSymbol.flags(Symbol.java:973)
	at com.sun.tools.javac.code.Symbol$ClassSymbol.getKind(Symbol.java:1101)
	at com.sun.tools.javac.code.Kinds.kindName(Kinds.java:162)
	at com.sun.tools.javac.comp.Check.duplicateError(Check.java:329)
	at com.sun.tools.javac.comp.Check.checkUnique(Check.java:3435)
	at com.sun.tools.javac.comp.Enter.visitTypeParameter(Enter.java:454)
	at com.sun.tools.javac.tree.JCTree$JCTypeParameter.accept(JCTree.java:2224)
	at com.sun.tools.javac.comp.Enter.classEnter(Enter.java:258)
	at com.sun.tools.javac.comp.Enter.classEnter(Enter.java:272)
	at com.sun.tools.javac.comp.Enter.visitClassDef(Enter.java:418)
	at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:693)
	at com.sun.tools.javac.comp.Enter.classEnter(Enter.java:258)
	at com.sun.tools.javac.comp.MemberEnter.baseEnv(MemberEnter.java:1388)
	at com.sun.tools.javac.comp.MemberEnter.complete(MemberEnter.java:1046)
	at com.sun.tools.javac.code.Symbol.complete(Symbol.java:574)
	at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:1037)
	at com.sun.tools.javac.code.Symbol$ClassSymbol.flags(Symbol.java:973)
	at com.sun.tools.javac.code.Symbol$ClassSymbol.getKind(Symbol.java:1101)
	at com.sun.tools.javac.code.Kinds.kindName(Kinds.java:162)
	at com.sun.tools.javac.comp.Check.duplicateError(Check.java:329)
	at com.sun.tools.javac.comp.Check.checkUnique(Check.java:3435)
	at com.sun.tools.javac.comp.Enter.visitTypeParameter(Enter.java:454)
	at com.sun.tools.javac.tree.JCTree$JCTypeParameter.accept(JCTree.java:2224)
	at com.sun.tools.javac.comp.Enter.classEnter(Enter.java:258)
	at com.sun.tools.javac.comp.Enter.classEnter(Enter.java:272)
	at com.sun.tools.javac.comp.Enter.visitClassDef(Enter.java:418)
	at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:693)
	at com.sun.tools.javac.comp.Enter.classEnter(Enter.java:258)
	at com.sun.tools.javac.comp.Enter.classEnter(Enter.java:272)
	at com.sun.tools.javac.comp.Enter.visitTopLevel(Enter.java:334)
	at com.sun.tools.javac.tree.JCTree$JCCompilationUnit.accept(JCTree.java:518)
	at com.sun.tools.javac.comp.Enter.classEnter(Enter.java:258)
	at com.sun.tools.javac.comp.Enter.classEnter(Enter.java:272)
	at com.sun.tools.javac.comp.Enter.complete(Enter.java:486)
	at com.sun.tools.javac.comp.Enter.main(Enter.java:471)
	at com.sun.tools.javac.main.JavaCompiler.enterTrees(JavaCompiler.java:982)
	at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:857)
	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)

REPRODUCIBILITY :
This bug can be reproduced always.

---------- BEGIN SOURCE ----------
interface alpha_F_m2_1<gamma_n, alpha_n_1, gamma_o, alpha_o_1> {
    gamma_n n(alpha_n_1 x);
    gamma_o o(alpha_o_1 x);
}

interface alpha_F_m3_1<gamma_n, alpha_n_1> {
    gamma_n n(alpha_n_1 x);
}

class F<
        A11 extends R1, 
        A12, 
        R1 extends R2,
	A21 extends alpha_F_m2_1<Gamma_F_m2_1_o,A22,Gamma_F_m2_1_n,sup_A23>,
	Gamma_F_m2_1_o extends A12,
	Gamma_F_m2_1_n extends A11,
	A22, 
	sup_A23,
	A23 extends sup_A23,
	R2,
 	sup_A33_A32,
 	A31 extends alpha_F_m3_1<Gamma_F_m3_1_n,sup_A33_A32>,
 	A33 extends sup_A33_A32,
 	A32 extends sup_A33_A32,
 	Gamma_F_m3_1_n extends A11,
         A32, 
 	A33,
 	R3
> {
    R1 m1(A11 x, A12 y) { return x; } 
    R2 m2(A21 x, A22 y, A23 z) { return m1(x.o(z), x.n(y)); }
    R3 m3(A31 x, A32 y, A33 z) { return m1(x.n(z), x.n(y)); }
}
---------- END SOURCE ----------


Comments
Right, a duplicate of JDK-8052070.
12-08-2015

Checked this for JDK 8u51, 8u60 ea b26 and 9 ea b76. The attached test case fails to compile with JDk 8u51 and 8u60 ea b26, however this compiled with errors in JDk 9 ea b76. This seems to be a duplicate of JDK-8052070.
11-08-2015