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 <[email protected]>:
> 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
>