Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cbt eval throws NPE when defaultScalaVersion is overridden #567

Open
bbarker opened this issue Nov 17, 2017 · 1 comment
Open

cbt eval throws NPE when defaultScalaVersion is overridden #567

bbarker opened this issue Nov 17, 2017 · 1 comment

Comments

@bbarker
Copy link
Contributor

bbarker commented Nov 17, 2017

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.

@lolgab
Copy link

lolgab commented Nov 20, 2017

I have the same exact problem... Pulled on this repo: https://github.com/lolgab/full-stack-scala

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants