Repository: spark
Updated Branches:
  refs/heads/master 33ef3aa7e -> a11b39951


[SPARK-13298][CORE][UI] Escape "label" to avoid DAG being broken by some 
special character

## What changes were proposed in this pull request?

When there are some special characters (e.g., `"`, `\`) in `label`, DAG will be 
broken. This patch just escapes `label` to avoid DAG being broken by some 
special characters

## How was the this patch tested?

Jenkins tests

Author: Shixiong Zhu <shixi...@databricks.com>

Closes #11309 from zsxwing/SPARK-13298.


Project: http://git-wip-us.apache.org/repos/asf/spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/a11b3995
Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/a11b3995
Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/a11b3995

Branch: refs/heads/master
Commit: a11b3995190cb4a983adcc8667f7b316cce18d24
Parents: 33ef3aa
Author: Shixiong Zhu <shixi...@databricks.com>
Authored: Mon Feb 22 17:42:30 2016 -0800
Committer: Andrew Or <and...@databricks.com>
Committed: Mon Feb 22 17:42:30 2016 -0800

----------------------------------------------------------------------
 .../scala/org/apache/spark/ui/scope/RDDOperationGraph.scala   | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/spark/blob/a11b3995/core/src/main/scala/org/apache/spark/ui/scope/RDDOperationGraph.scala
----------------------------------------------------------------------
diff --git 
a/core/src/main/scala/org/apache/spark/ui/scope/RDDOperationGraph.scala 
b/core/src/main/scala/org/apache/spark/ui/scope/RDDOperationGraph.scala
index 003c218..cb28271 100644
--- a/core/src/main/scala/org/apache/spark/ui/scope/RDDOperationGraph.scala
+++ b/core/src/main/scala/org/apache/spark/ui/scope/RDDOperationGraph.scala
@@ -20,10 +20,11 @@ package org.apache.spark.ui.scope
 import scala.collection.mutable
 import scala.collection.mutable.{ListBuffer, StringBuilder}
 
+import org.apache.commons.lang3.StringEscapeUtils
+
 import org.apache.spark.Logging
 import org.apache.spark.scheduler.StageInfo
 import org.apache.spark.storage.StorageLevel
-import org.apache.spark.util.CallSite
 
 /**
  * A representation of a generic cluster graph used for storing information on 
RDD operations.
@@ -183,7 +184,7 @@ private[ui] object RDDOperationGraph extends Logging {
   /** Return the dot representation of a node in an RDDOperationGraph. */
   private def makeDotNode(node: RDDOperationNode): String = {
     val label = s"${node.name} [${node.id}]\n${node.callsite}"
-    s"""${node.id} [label="$label"]"""
+    s"""${node.id} [label="${StringEscapeUtils.escapeJava(label)}"]"""
   }
 
   /** Update the dot representation of the RDDOperationGraph in cluster to 
subgraph. */
@@ -192,7 +193,7 @@ private[ui] object RDDOperationGraph extends Logging {
       cluster: RDDOperationCluster,
       indent: String): Unit = {
     subgraph.append(indent).append(s"subgraph cluster${cluster.id} {\n")
-    subgraph.append(indent).append(s"""  label="${cluster.name}";\n""")
+      .append(indent).append(s"""  
label="${StringEscapeUtils.escapeJava(cluster.name)}";\n""")
     cluster.childNodes.foreach { node =>
       subgraph.append(indent).append(s"  ${makeDotNode(node)};\n")
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org
For additional commands, e-mail: commits-h...@spark.apache.org

Reply via email to