You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spark.apache.org by va...@apache.org on 2015/12/30 22:49:21 UTC
spark git commit: [SPARK-12399] Display correct error message when
accessing REST API with an unknown app Id
Repository: spark
Updated Branches:
refs/heads/master 5c2682b0c -> b24429796
[SPARK-12399] Display correct error message when accessing REST API with an unknown app Id
I got an exception when accessing the below REST API with an unknown application Id.
`http://<server-url>:18080/api/v1/applications/xxx/jobs`
Instead of an exception, I expect an error message "no such app: xxx" which is a similar error message when I access `/api/v1/applications/xxx`
```
org.spark-project.guava.util.concurrent.UncheckedExecutionException: java.util.NoSuchElementException: no app with key xxx
at org.spark-project.guava.cache.LocalCache$Segment.get(LocalCache.java:2263)
at org.spark-project.guava.cache.LocalCache.get(LocalCache.java:4000)
at org.spark-project.guava.cache.LocalCache.getOrLoad(LocalCache.java:4004)
at org.spark-project.guava.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4874)
at org.apache.spark.deploy.history.HistoryServer.getSparkUI(HistoryServer.scala:116)
at org.apache.spark.status.api.v1.UIRoot$class.withSparkUI(ApiRootResource.scala:226)
at org.apache.spark.deploy.history.HistoryServer.withSparkUI(HistoryServer.scala:46)
at org.apache.spark.status.api.v1.ApiRootResource.getJobs(ApiRootResource.scala:66)
```
Author: Carson Wang <ca...@intel.com>
Closes #10352 from carsonwang/unknownAppFix.
Project: http://git-wip-us.apache.org/repos/asf/spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/b2442979
Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/b2442979
Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/b2442979
Branch: refs/heads/master
Commit: b244297966be1d09f8e861cfe2d8e69f7bed84da
Parents: 5c2682b
Author: Carson Wang <ca...@intel.com>
Authored: Wed Dec 30 13:49:10 2015 -0800
Committer: Marcelo Vanzin <va...@cloudera.com>
Committed: Wed Dec 30 13:49:10 2015 -0800
----------------------------------------------------------------------
.../apache/spark/deploy/history/HistoryServer.scala | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/spark/blob/b2442979/core/src/main/scala/org/apache/spark/deploy/history/HistoryServer.scala
----------------------------------------------------------------------
diff --git a/core/src/main/scala/org/apache/spark/deploy/history/HistoryServer.scala b/core/src/main/scala/org/apache/spark/deploy/history/HistoryServer.scala
index 0bc0cb1..6143a33 100644
--- a/core/src/main/scala/org/apache/spark/deploy/history/HistoryServer.scala
+++ b/core/src/main/scala/org/apache/spark/deploy/history/HistoryServer.scala
@@ -21,6 +21,8 @@ import java.util.NoSuchElementException
import java.util.zip.ZipOutputStream
import javax.servlet.http.{HttpServlet, HttpServletRequest, HttpServletResponse}
+import scala.util.control.NonFatal
+
import com.google.common.cache._
import org.eclipse.jetty.servlet.{ServletContextHandler, ServletHolder}
import org.apache.spark.{Logging, SecurityManager, SparkConf}
@@ -113,7 +115,17 @@ class HistoryServer(
}
def getSparkUI(appKey: String): Option[SparkUI] = {
- Option(appCache.get(appKey))
+ try {
+ val ui = appCache.get(appKey)
+ Some(ui)
+ } catch {
+ case NonFatal(e) => e.getCause() match {
+ case nsee: NoSuchElementException =>
+ None
+
+ case cause: Exception => throw cause
+ }
+ }
}
initialize()
@@ -193,7 +205,7 @@ class HistoryServer(
appCache.get(appId + attemptId.map { id => s"/$id" }.getOrElse(""))
true
} catch {
- case e: Exception => e.getCause() match {
+ case NonFatal(e) => e.getCause() match {
case nsee: NoSuchElementException =>
false
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@spark.apache.org
For additional commands, e-mail: commits-help@spark.apache.org