zinc
zinc copied to clipboard
NPE under -Vdebug
I turn up compiler debug -Vdebug -Vtyper -Vlog:typer.
It looks like SymbolTable emits a line of debug output after var delegate is cleared.
It's happened on a couple of sample sbt projects. Maybe only since 2.13.2?
[error] java.lang.NullPointerException
[error] xsbt.DelegatingReporter.info0(DelegatingReporter.scala:181)
[error] scala.tools.nsc.reporters.MakeFilteringForwardingReporter.doReport(ForwardingReporter.scala:59)
[error] scala.tools.nsc.reporters.FilteringReporter.info0(Reporter.scala:93)
[error] scala.reflect.internal.Reporter.echo(Reporting.scala:112)
[error] scala.reflect.internal.Reporting.inform(Reporting.scala:73)
[error] scala.reflect.internal.Reporting.inform$(Reporting.scala:73)
[error] scala.reflect.internal.SymbolTable.inform(SymbolTable.scala:28)
[error] scala.reflect.internal.Reporting.inform(Reporting.scala:56)
[error] scala.reflect.internal.Reporting.inform$(Reporting.scala:56)
[error] scala.reflect.internal.SymbolTable.inform(SymbolTable.scala:28)
[error] scala.tools.nsc.Global.debuglog(Global.scala:311)
[error] scala.reflect.internal.SymbolTable$perRunCaches$.clearAll(SymbolTable.scala:450)
[error] scala.tools.nsc.Global.close(Global.scala:1735)
[error] xsbt.CachedCompiler0.close(CompilerInterface.scala:100)
[error] sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:98)
https://github.com/scala/bug/issues/12041#issuecomment-644197129
Thanks for the report.
I was able to reproduce this using scala/scala on https://github.com/scala/scala/commits/d23424cd3aa17f7ad95b81018c70ceed2566962b.
$ sbt
[info] welcome to sbt 1.3.12 (AdoptOpenJDK Java 1.8.0_232)
sbt:root> project library
sbt:scala-library> set Compile/scalacOptions ++= Seq("-Vdebug", "-Vtyper", "-Vlog:typer")
sbt:scala-library> compile
[error] java.lang.NullPointerException
[error] xsbt.DelegatingReporter.info0(DelegatingReporter.scala:181)
[error] scala.tools.nsc.reporters.MakeFilteringForwardingReporter.doReport(ForwardingReporter.scala:59)
[error] scala.tools.nsc.reporters.FilteringReporter.info0(Reporter.scala:93)
[error] scala.reflect.internal.Reporter.echo(Reporting.scala:112)
[error] scala.reflect.internal.Reporting.inform(Reporting.scala:73)
[error] scala.reflect.internal.Reporting.inform$(Reporting.scala:73)
[error] scala.reflect.internal.SymbolTable.inform(SymbolTable.scala:28)
[error] scala.reflect.internal.Reporting.inform(Reporting.scala:56)
[error] scala.reflect.internal.Reporting.inform$(Reporting.scala:56)
[error] scala.reflect.internal.SymbolTable.inform(SymbolTable.scala:28)
[error] scala.tools.nsc.Global.debuglog(Global.scala:311)
[error] scala.reflect.internal.SymbolTable$perRunCaches$.clearAll(SymbolTable.scala:450)
[error] scala.tools.nsc.Global.close(Global.scala:1735)
[error] xsbt.CachedCompiler0.close(CompilerInterface.scala:100)
[error] sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:98)
[error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4(MixedAnalyzingCompiler.scala:91)
[error] scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
[error] sbt.internal.inc.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:186)
[error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$3(MixedAnalyzingCompiler.scala:82)
[error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$3$adapted(MixedAnalyzingCompiler.scala:77)
[error] sbt.internal.inc.JarUtils$.withPreviousJar(JarUtils.scala:215)
[error] sbt.internal.inc.MixedAnalyzingCompiler.compileScala$1(MixedAnalyzingCompiler.scala:77)
[error] sbt.internal.inc.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:144)
[error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1(IncrementalCompilerImpl.scala:343)
[error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:343)
[error] sbt.internal.inc.Incremental$.doCompile(Incremental.scala:120)
[error] sbt.internal.inc.Incremental$.$anonfun$compile$4(Incremental.scala:100)
[error] sbt.internal.inc.IncrementalCommon.recompileClasses(IncrementalCommon.scala:180)
[error] sbt.internal.inc.IncrementalCommon.cycle(IncrementalCommon.scala:98)
[error] sbt.internal.inc.Incremental$.$anonfun$compile$3(Incremental.scala:102)
[error] sbt.internal.inc.Incremental$.manageClassfiles(Incremental.scala:155)
[error] sbt.internal.inc.Incremental$.compile(Incremental.scala:92)
[error] sbt.internal.inc.IncrementalCompile$.apply(Compile.scala:75)
[error] sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:348)
[error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:301)
[error] sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:168)
[error] sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:248)
[error] sbt.internal.inc.IncrementalCompilerImpl.compile(IncrementalCompilerImpl.scala:74)
[error] sbt.Defaults$.compileIncrementalTaskImpl(Defaults.scala:1765)
[error] sbt.Defaults$.$anonfun$compileIncrementalTask$1(Defaults.scala:1738)
[error] scala.Function1.$anonfun$compose$1(Function1.scala:49)
[error] sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:62)
[error] sbt.std.Transform$$anon$4.work(Transform.scala:67)
[error] sbt.Execute.$anonfun$submit$2(Execute.scala:281)
[error] sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:19)
[error] sbt.Execute.work(Execute.scala:290)
[error] sbt.Execute.$anonfun$submit$1(Execute.scala:281)
[error] sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:178)
[error] sbt.CompletionService$$anon$2.call(CompletionService.scala:37)
[error] java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error] java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[error] java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error] java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[error] java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[error] java.lang.Thread.run(Thread.java:748)
[error]
Requisite update from the amazing future of fancy NPEs:
[error] java.lang.NullPointerException: Cannot invoke "xsbti.Reporter.log(xsbti.Problem)" because "this.delegate" is null
[error] xsbt.DelegatingReporter.info0(DelegatingReporter.scala:185)
Annual bump.