File tree Expand file tree Collapse file tree 1 file changed +14
-1
lines changed
core/src/main/scala/org/apache/spark/ui/jobs Expand file tree Collapse file tree 1 file changed +14
-1
lines changed Original file line number Diff line number Diff line change 1818package org .apache .spark .ui .jobs
1919
2020import java .net .URLEncoder
21+ import java .net .URLDecoder
2122import java .util .Date
2223import javax .servlet .http .HttpServletRequest
2324
@@ -100,7 +101,19 @@ private[ui] class StagePage(parent: StagesTab) extends WebUIPage("stage") {
100101 val parameterTaskPrevPageSize = request.getParameter(" task.prevPageSize" )
101102
102103 val taskPage = Option (parameterTaskPage).map(_.toInt).getOrElse(1 )
103- val taskSortColumn = Option (parameterTaskSortColumn).getOrElse(" Index" )
104+ val taskSortColumn = Option (parameterTaskSortColumn).map {
105+ sortColumn =>
106+ // If sortColumn contains "/", `getParameter("task.sort")` will return
107+ // "%252F" when yarn mode. we need additional decode.
108+ // See also SPARK-4313, YARN-2844.
109+ var column = sortColumn
110+ var decodedColumn = URLDecoder .decode(column, " UTF-8" )
111+ while (column != decodedColumn) {
112+ column = decodedColumn
113+ decodedColumn = URLDecoder .decode(column, " UTF-8" )
114+ }
115+ column
116+ }.getOrElse(" Index" )
104117 val taskSortDesc = Option (parameterTaskSortDesc).map(_.toBoolean).getOrElse(false )
105118 val taskPageSize = Option (parameterTaskPageSize).map(_.toInt).getOrElse(100 )
106119 val taskPrevPageSize = Option (parameterTaskPrevPageSize).map(_.toInt).getOrElse(taskPageSize)
You can’t perform that action at this time.
0 commit comments