Closed wsargent closed 7 years ago
Okay, this is actually happening on the SBT task side -- specifically, getExcludes
is being called directly through reflection with the safeties off https://github.com/wsargent/test-shade/blob/null-pointer-exception/project/JarJar.scala#L83
val getter = processor.getClass.getDeclaredMethod("getExcludes")
getter.setAccessible(true)
val excludes = getter.invoke(processor).asInstanceOf[java.util.Set[String]].asScala
val excluded = excludes.map { name =>
val f: File = outdir / name
if(f.exists && !f.delete())
throw new IOException("Failed to delete excluded file $f")
f
}
I'm attempting to shade Netty 4.0 to a different package, using SBT. I'm using version 1.6.3.
Here's the exception:
This implicates https://github.com/pantsbuild/jarjar/blob/master/src/main/java/org/pantsbuild/jarjar/MainProcessor.java#L99 -- specifically
kp
is probably null:The approach I'm using is based off Scala's jline embedding: https://github.com/scala/scala/blob/2.12.x/build.sbt#L483
The test project is available under https://github.com/wsargent/test-shade/tree/null-pointer-exception -- note the
null-pointer-exception
branch.To reproduce, install sbt, then type
sbt compile
at a command prompt.