JDK-8158119 : Compiler fails with java.lang.NullPointerException and requests that I file a bug.
  • Type: Bug
  • Component: tools
  • Sub-Component: javac
  • Affected Version: 7u101
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • OS: linux
  • CPU: x86_64
  • Submitted: 2016-05-28
  • Updated: 2016-05-30
  • Resolved: 2016-05-30
Related Reports
Duplicate :  
Description
FULL PRODUCT VERSION :
java version "1.7.0_101"
OpenJDK Runtime Environment (IcedTea 2.6.6) (7u101-2.6.6-0ubuntu0.14.04.1)
OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode)

ADDITIONAL OS VERSION INFORMATION :
Linux 3.16.0-38-generic #52~14.04.1-Ubuntu x86_64 GNU/Linux

A DESCRIPTION OF THE PROBLEM :
Attempting to compile a particular Android project into an APK results in a compiler error.

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
- Clone the repository at <https://github.com/josephtoles/seabiscuit>. This repository is closed but the manager joseph@slightlyrobot.com is happy to give Oracle access.
- Check out the branch called "compiler-error".
- Install the Android SDK command-line toolkit for compiling Android applications. Set the JAVA_HOME and ANDROID_SDK_DIR environment variables to their appropriate values. You do not need to set the KSTOREPWD and  KEYPWD environment variables.
- Change directory into the project directory
- execute $ ./gradlew assembleDebug

EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
I expect the Java compiler to compile the project into an APK or, failing that, to get an error explaining why it could not.
ACTUAL -
The Java compiler raises a java.lang.NullPointerException and requests that I file a bug on this website.

ERROR MESSAGES/STACK TRACES THAT OCCUR :
An exception has occurred in the compiler (1.7.0_101). 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:1050)
	at com.sun.tools.javac.comp.MemberEnter.complete(MemberEnter.java:884)
	at com.sun.tools.javac.code.Symbol.complete(Symbol.java:421)
	at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:821)
	at com.sun.tools.javac.code.Symbol$ClassSymbol.flags(Symbol.java:764)
	at com.sun.tools.javac.code.Symbol$ClassSymbol.getKind(Symbol.java:860)
	at com.sun.tools.javac.code.Kinds.kindName(Kinds.java:146)
	at com.sun.tools.javac.comp.Check.duplicateError(Check.java:316)
	at com.sun.tools.javac.comp.Check.checkUnique(Check.java:2674)
	at com.sun.tools.javac.comp.Enter.visitTypeParameter(Enter.java:452)
	at com.sun.tools.javac.tree.JCTree$JCTypeParameter.accept(JCTree.java:1924)
	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:416)
	at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:591)
	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:424)
	at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:591)
	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:332)
	at com.sun.tools.javac.tree.JCTree$JCCompilationUnit.accept(JCTree.java:459)
	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:484)
	at com.sun.tools.javac.comp.Enter.main(Enter.java:469)
	at com.sun.tools.javac.main.JavaCompiler.enterTrees(JavaCompiler.java:929)
	at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:824)
	at com.sun.tools.javac.main.Main.compile(Main.java:439)
	at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:132)
	at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:45)
	at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:33)
	at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.delegateAndHandleErrors(NormalizingJavaCompiler.java:101)
	at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:50)
	at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:36)
	at org.gradle.api.internal.tasks.compile.CleaningJavaCompilerSupport.execute(CleaningJavaCompilerSupport.java:34)
	at org.gradle.api.internal.tasks.compile.CleaningJavaCompilerSupport.execute(CleaningJavaCompilerSupport.java:25)
	at org.gradle.api.tasks.compile.JavaCompile.performCompilation(JavaCompile.java:157)
	at org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:139)
	at org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:93)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75)
	at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.doExecute(AnnotationProcessingTaskFactory.java:244)
	at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:220)
	at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.execute(AnnotationProcessingTaskFactory.java:231)
	at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:209)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
	at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
	at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
	at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
	at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52)
	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
	at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
	at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:203)
	at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:185)
	at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:62)
	at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:25)
	at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:110)
	at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
	at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
	at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
	at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
	at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
	at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
	at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
	at org.gradle.initialization.DefaultGradleLauncher$4.run(DefaultGradleLauncher.java:154)
	at org.gradle.internal.Factories$1.create(Factories.java:22)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:52)
	at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:151)
	at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:32)
	at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:99)
	at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:93)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:62)
	at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:93)
	at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:82)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:94)
	at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
	at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:43)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:28)
	at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:77)
	at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:47)
	at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:52)
	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
	at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
	at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
	at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
	at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
	at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
	at org.gradle.util.Swapper.swap(Swapper.java:38)
	at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
	at org.gradle.launcher.daemon.server.health.DaemonHealthTracker.execute(DaemonHealthTracker.java:47)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
	at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:66)
	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
	at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:71)
	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
	at org.gradle.launcher.daemon.server.health.HintGCAfterBuild.execute(HintGCAfterBuild.java:41)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
	at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
	at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:246)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
	at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:745)
:wear:compileDebugJavaWithJavac FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':wear:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 10.126 secs

REPRODUCIBILITY :
This bug can be reproduced always.

---------- BEGIN SOURCE ----------
I have neither the skills, nor the resources, to isolate this bug from the project producing his error, but would be happy to provide all the help I can to the Oracle in fixing this bug.
---------- END SOURCE ----------

CUSTOMER SUBMITTED WORKAROUND :
Nothing besides removing the code that causes this bug.


Comments
Closing as duplicate of JDK-8052070
30-05-2016

Found to be duplicate of JDK-8052070, below is the result 7uxx - Fail 8uxx - Fail (Including 8u92) 9 ea b-119 - Pass == -sh-4.1$ /opt/java/jdk1.7.0_101/bin/javac Main.java An exception has occurred in the compiler (1.7.0_101-ea). Please file a bug at the Java Bug Database (http://bugreport.java.com/bugreport/) after checking the database 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:1050) at com.sun.tools.javac.comp.MemberEnter.complete(MemberEnter.java:884) at com.sun.tools.javac.code.Symbol.complete(Symbol.java:421) at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:821) at com.sun.tools.javac.code.Symbol$ClassSymbol.flags(Symbol.java:764) at com.sun.tools.javac.code.Symbol$ClassSymbol.getKind(Symbol.java:860) at com.sun.tools.javac.code.Kinds.kindName(Kinds.java:146) at com.sun.tools.javac.comp.Check.duplicateError(Check.java:316) at com.sun.tools.javac.comp.Check.checkUnique(Check.java:2674) at com.sun.tools.javac.comp.Enter.visitTypeParameter(Enter.java:452) at com.sun.tools.javac.tree.JCTree$JCTypeParameter.accept(JCTree.java:1924) 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:416) at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:591) 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:332) at com.sun.tools.javac.tree.JCTree$JCCompilationUnit.accept(JCTree.java:459) 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:484) at com.sun.tools.javac.comp.Enter.main(Enter.java:469) at com.sun.tools.javac.main.JavaCompiler.enterTrees(JavaCompiler.java:929) at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:824) at com.sun.tools.javac.main.Main.compile(Main.java:439) at com.sun.tools.javac.main.Main.compile(Main.java:353) at com.sun.tools.javac.main.Main.compile(Main.java:342) at com.sun.tools.javac.main.Main.compile(Main.java:333) at com.sun.tools.javac.Main.compile(Main.java:76) at com.sun.tools.javac.Main.main(Main.java:61) -sh-4.1$ /opt/java/jdk1.8.0_92/bin/javac Main.java An exception has occurred in the compiler (1.8.0_92). Please file a bug against the Java compiler via the Java bug reporting page (http://bugreport.java.com) after checking the Bug Database (http://bugs.java.com) 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:3380) 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) at com.sun.tools.javac.Main.main(Main.java:42) -sh-4.1$ /opt/java/jdk-9_ea-11 jdk-9_ea-110/ jdk-9_ea-115/ jdk-9_ea-119/ -sh-4.1$ /opt/java/jdk-9_ea-119/bin/javac Main.java Main.java:1: error: type variable A is already defined in class Main public class Main<A, A, T> { ^
30-05-2016

This is openjdk android issue, observed on 7u101
30-05-2016