diff --git a/core/src/main/scala/org/apache/spark/ui/jobs/JobPage.scala b/core/src/main/scala/org/apache/spark/ui/jobs/JobPage.scala index 286ed6e2f639a..e2db51449e568 100644 --- a/core/src/main/scala/org/apache/spark/ui/jobs/JobPage.scala +++ b/core/src/main/scala/org/apache/spark/ui/jobs/JobPage.scala @@ -17,12 +17,11 @@ package org.apache.spark.ui.jobs +import scala.xml.{NodeSeq, Node} + import javax.servlet.http.HttpServletRequest import org.apache.spark.scheduler.StageInfo - -import scala.xml.{NodeSeq, Node} - import org.apache.spark.ui.{UIUtils, WebUIPage} /** Page showing statistics and stage list for a given job */ @@ -44,6 +43,8 @@ private[ui] class JobPage(parent: JobsTab) extends WebUIPage("job") { } val jobData = jobDataOption.get val stages = jobData.stageIds.map { stageId => + // This could be empty if the JobProgressListener hasn't received information about the + // stage or if the stage information has been garbage collected listener.stageIdToInfo.getOrElse(stageId, new StageInfo(stageId, 0, "Unknown", 0, Seq.empty, "Unknown")) }