That's great news.

I recall some other parts of Akka where migrating the code to spark 2.0 /
scala 2.11 required specifying a bunch of classloaders in the source.

On Sat, 11 Feb 2017 at 17:45 Jakob Odersky <ja...@odersky.com> wrote:

> Hi everyone,
>
> I may have found a fix for the classloader issues I'm having when
> running unit tests
> (https://groups.google.com/forum/#!topic/akka-user/U0mLX3mCmAk).
> Basically the issue appears to happen when a test suite that uses the
> Akka TestKit base class does not define an explicit classloader.
>
> I.e. the following will result in a cryptic error:
>
> class ExecuteRequestHandlerSpec extends TestKit(
>   ActorSystem("ExecuteRequestHandlerSpec")) { //tests }
>
> whereas explicitly defining a classloader for the actor system works fine:
>
> class ExecuteRequestHandlerSpec extends TestKit(
>   ActorSystem("ExecuteRequestHandlerSpec",
>     org.apache.toree.Main.getClass.getClassLoader)) { //tests }
>
> I have seen that latter approach used in various tests, however the
> classloaders are not specified consistently in all tests. My proposed
> approach to fixing the tests is to make classloaders explicit
> everywhere (thinking about creating a utility mixin, instead of using
> TestKit directly).
>
> I'm not very well versed in all the class loader magic that happens
> within Spark, Akka and sbt, and would greatly appreciate any input as
> to why the exceptions are raised in the first place and whether my
> proposal is actually a clean fix or just some quick hack.
>
> cheers,
> --Jakob
>
-- 
regards
Marius van Niekerk

Reply via email to