Hi, Michael Ravits. The error happens when the Log class try to read the jetty-logging.properties file. Please take a look the line at ( org.eclipse.jetty.util.log.Log.java:94)
URL testProps = Log.class.getClassLoader().getResource( "jetty-logging.properties"); Thus, the question is if this file exists. About the second question, the signature: class JobRunner(config: Config) extends Logging { def run() = {...} The operator = without any type represent a void return in Scala. Is the same when you declare something like this: def run(): Unit = {..} Unit documentation: http://www.scala-lang.org/api/current/index.html#scala.Unit Topic related at StackOverflow: http://stackoverflow.com/questions/9461880/should-i-use-unit-or-leave-out-the-return-type-for-my-scala-method Hope I helped you. Thanks. 2015-05-17 18:53 GMT-03:00 Michael Ravits <michaelr...@gmail.com>: > Hi Everybody, > > Trying to get up and running with a Clojure Samza Task. > I think that my question is Clojure specific but I guess that some of the > folks here are Clojure developers which might also know the answers. > > I'm trying to run a job, using the same code as here: > > https://github.com/apache/samza/blob/master/samza-test/src/test/scala/org/apache/samza/test/integration/TestStatefulTask.scala#L324 > > > This is my clojure version: > > (deftest a-test > (testing "debug" > (let [job ^StreamJob (->> (MapConfig. config) > (JobRunner.) > (.run))] > (do > (.waitForStatus job (ApplicationStatus/Running) 60000))))) > > > The same code in Java seems to start fine. But with Clojure I get the > following error. getClassLoader returns null in at > org.eclipse.jetty.util.log.Log$1.run (Log.java:94) which causes an NPE: > > Caused by: java.lang.NullPointerException: null > at org.eclipse.jetty.util.log.Log$1.run (Log.java:94) > java.security.AccessController.doPrivileged (AccessController.java:-2) > org.eclipse.jetty.util.log.Log.<clinit> (Log.java:85) > org.eclipse.jetty.util.component.AbstractLifeCycle.<clinit> > (AbstractLifeCycle.java:33) > > org.apache.samza.coordinator.server.HttpServer$.$lessinit$greater$default$4 > (HttpServer.scala:65) > org.apache.samza.coordinator.JobCoordinator$.apply > (JobCoordinator.scala:56) > org.apache.samza.job.local.ThreadJobFactory.getJob > (ThreadJobFactory.scala:39) > org.apache.samza.job.JobRunner.run (JobRunner.scala:62) > assembler.core_test/fn (core_test.clj:47) > > > I'm a bit clueless right now as to how to investigation this further and > could not find any useful information on why this could happen. > Would be great if anyone could give me a clue as to what could be causing > this problem. > > My second question is regarding this line: > > val job = new JobRunner(new MapConfig(jobConfig)).run > > How is that JobRunner.run() in Scala returns a Job object while in Java the > same method signature returns void? > > Thanks, > Michael >