Our old friend the zero-partition RDD is getting you -- ``jobResult`` stays ``null``, so ``waiter.awaitResult() match {...}`` fails in ``DAGScheduler.runJob``.

Here's one way to fix it:
```scala
  // If the job is finished, this will be its result
  private var jobResult: JobResult = if (_jobFinished) {
    JobSucceeded
  } else {
    JobFailed(new Exception, None)
  }
```
You could leave it ``null`` in the ``else`` branch, but better to have ``jobResult`` always be matchable.