8000 cbt eval throws NPE when defaultScalaVersion is overridden · Issue #567 · cvogt/cbt · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
cbt eval throws NPE when defaultScalaVersion is overridden #567
Open
@bbarker

Description

@bbarker

To reproduce:

brandon@beb82dell0:~/workspace/ProjectGists/Scala$ mkdir CBT_eval_with_override
brandon@beb82dell0:~/workspace/ProjectGists/Scala$ cd CBT_eval_with_override/
brandon@beb82dell0:~/workspace/ProjectGists/Scala/CBT_eval_with_override$ cbt tools createMain
(Note: nailgun not found. It makes CBT faster! Try 'brew install nailgun' or 'apt-get install nailgun'.)
Created Main.scala
()
brandon@beb82dell0:~/workspace/ProjectGists/Scala/CBT_eval_with_override$ cbt tools createBuild
(Note: nailgun not found. It makes CBT faster! Try 'brew install nailgun' or 'apt-get install nailgun'.)
Created build/build.scala
()
brandon@beb82dell0:~/workspace/ProjectGists/Scala/CBT_eval_with_override$ emacs build/build.scala 
  1. add with CommandLineOverrides to Build class definition
  2. add override val defaultScalaVersion = "2.12.4" (exact version doesn't matter)
brandon@beb82dell0:~/workspace/ProjectGists/Scala/CBT_eval_with_override$ cbt eval scalaVersion
(Note: nailgun not found. It makes CBT faster! Try 'brew install nailgun' or 'apt-get install nailgun'.)
Compiling to /home/brandon/workspace/ProjectGists/Scala/CBT_eval_with_override/build/target/scala-2.11/classes
[warn] Pruning sources from previous analysis, due to incompatible CompileSetup.
[info] Compiling 1 Scala source to /home/brandon/workspace/ProjectGists/Scala/CBT_eval_with_override/build/target/scala-2.11/classes...
[info] Compile success at Nov 17, 2017 1:51:06 PM [2.114s]
Exception in thread "main" java.lang.NullPointerException
	at cbt.Stage1Lib.libMajorVersion(Stage1Lib.scala:22)
	at cbt.BaseBuild$class.scalaMajorVersion(BasicBuild.scala:56)
	at cbt_eval_with_override_build.Build.scalaMajorVersion(build.scala:3)
	at cbt.BaseBuild$class.scalaTarget(BasicBuild.scala:83)
	at cbt_eval_with_override_build.Build.scalaTarget(build.scala:3)
	at cbt.BaseBuild$class.moduleKey(BasicBuild.scala:20)
	at cbt_eval_with_override_build.Build.moduleKey$lzycompute(build.scala:3)
	at cbt_eval_with_override_build.Build.moduleKey(build.scala:3)
	at cbt.DependencyImplementation$class.taskCache(resolver.scala:20)
	at cbt_eval_with_override_build.Build.taskCache$lzycompute(build.scala:3)
	at cbt_eval_with_override_build.Build.taskCache(build.scala:3)
	at cbt.DynamicOverrides$class.$init$(DynamicOverrides.scala:5)
	at cbt_eval_with_override_build.Build.<init>(build.scala:3)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at cbt.DirectoryDependency$$anonfun$cbt$DirectoryDependency$$loadCustomBuild$1$3.apply(DirectoryDependency.scala:104)
	at cbt.DirectoryDependency$$anonfun$cbt$DirectoryDependency$$loadCustomBuild$1$3.apply(DirectoryDependency.scala:104)
	at scala.Option.map(Option.scala:146)
	at cbt.DirectoryDependency$.cbt$DirectoryDependency$$loadCustomBuild$1(DirectoryDependency.scala:103)
	at cbt.DirectoryDependency$$anonfun$cbt$DirectoryDependency$$loadBuild$1$1.apply(DirectoryDependency.scala:39)
	at scala.Option.getOrElse(Option.scala:121)
	at cbt.DirectoryDependency$.cbt$DirectoryDependency$$loadBuild$1(DirectoryDependency.scala:39)
	at cbt.DirectoryDependency$$anonfun$apply$4.apply(DirectoryDependency.scala:119)
	at cbt.DirectoryDependency$$anonfun$apply$4.apply(DirectoryDependency.scala:118)
	at cbt.LazyDependency.dependency$lzycompute(LazyDependency.scala:3)
	at cbt.LazyDependency.dependency(LazyDependency.scala:3)
	at cbt.Lib$$anonfun$3.cbt$Lib$$anonfun$$g$1(Lib.scala:102)
	at cbt.Lib$$anonfun$3$$anonfun$apply$5.apply(Lib.scala:105)
	at cbt.Lib.cbt$Lib$$callInternal(Lib.scala:175)
	at cbt.Lib.getReflective(Lib.scala:143)
	at cbt.Lib.callReflective(Lib.scala:106)
	at cbt.Stage2$.run(Stage2.scala:35)
	at cbt.Stage2.run(Stage2.scala)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at cbt.Stage1$.run(Stage1.scala:209)
	at cbt.Stage1.run(Stage1.scala)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at cbt.NailgunLauncher.main(NailgunLauncher.java:120)
brandon@beb82dell0:~/workspace/ProjectGists/Scala/CBT_eval_with_override$ 


I'll also note it doesn't seem to matter what the argument to cbt eval is - it could be some other member as well with the same result.

If this doesn't help to repro, maybe it is linux specific - I'm using Ubuntu 16.04. Can throw together a docker container if necessary. Here is the code.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0