This is an automated email from the ASF dual-hosted git repository.

gengliang pushed a commit to branch branch-3.0
in repository https://gitbox.apache.org/repos/asf/spark.git


The following commit(s) were added to refs/heads/branch-3.0 by this push:
     new 61ede3a  [SPARK-31128][WEBUI] Fix Uncaught TypeError in streaming 
statistics page
61ede3a is described below

commit 61ede3ac7cb799fadc2549fa61b5375bc7872e7f
Author: Gengliang Wang <gengliang.w...@databricks.com>
AuthorDate: Thu Mar 12 20:01:17 2020 -0700

    [SPARK-31128][WEBUI] Fix Uncaught TypeError in streaming statistics page
    
    ### What changes were proposed in this pull request?
    
    There is a minor issue in https://github.com/apache/spark/pull/26201
    In the streaming statistics page, there is such error
    ```
    streaming-page.js:211 Uncaught TypeError: Cannot read property 'top' of 
undefined
    at SVGCircleElement.<anonymous> (streaming-page.js:211)
    at SVGCircleElement.__onclick (d3.min.js:1)
    ```
    in the console after clicking the timeline graph.
    
![image](https://user-images.githubusercontent.com/1097932/76479745-14b26280-63ca-11ea-9079-0065321795f9.png)
    
    This PR is to fix it.
    ### Why are the changes needed?
    
    Fix the error of javascript execution.
    
    ### Does this PR introduce any user-facing change?
    
    No, the error shows up in the console.
    
    ### How was this patch tested?
    
    Manual test.
    
    Closes #27883 from gengliangwang/fixSelector.
    
    Authored-by: Gengliang Wang <gengliang.w...@databricks.com>
    Signed-off-by: Gengliang Wang <gengliang.w...@databricks.com>
    (cherry picked from commit 0f463258c214c67360f2b46a4e2292d992b3bf23)
    Signed-off-by: Gengliang Wang <gengliang.w...@databricks.com>
---
 .../org/apache/spark/ui/static/streaming-page.js   | 39 ++++++++++++----------
 1 file changed, 21 insertions(+), 18 deletions(-)

diff --git 
a/core/src/main/resources/org/apache/spark/ui/static/streaming-page.js 
b/core/src/main/resources/org/apache/spark/ui/static/streaming-page.js
index ed3e65c3..528b9df 100644
--- a/core/src/main/resources/org/apache/spark/ui/static/streaming-page.js
+++ b/core/src/main/resources/org/apache/spark/ui/static/streaming-page.js
@@ -190,29 +190,32 @@ function drawTimeline(id, data, minX, maxX, minY, maxY, 
unitY, batchInterval) {
                     .attr("r", function(d) { return isFailedBatch(d.x) ? "2" : 
"3";});
             })
             .on("click", function(d) {
-                if (lastTimeout != null) {
-                    window.clearTimeout(lastTimeout);
-                }
-                if (lastClickedBatch != null) {
-                    clearBatchRow(lastClickedBatch);
-                    lastClickedBatch = null;
-                }
-                lastClickedBatch = d.x;
-                highlightBatchRow(lastClickedBatch);
-                lastTimeout = window.setTimeout(function () {
-                    lastTimeout = null;
+                var batchSelector = $("#batch-" + d.x);
+                // If there is a corresponding batch row, scroll down to it 
and highlight it.
+                if (batchSelector.length > 0) {
+                    if (lastTimeout != null) {
+                        window.clearTimeout(lastTimeout);
+                    }
                     if (lastClickedBatch != null) {
                         clearBatchRow(lastClickedBatch);
                         lastClickedBatch = null;
                     }
-                }, 3000); // Clean up after 3 seconds
-
-                var batchSelector = $("#batch-" + d.x);
-                var topOffset = batchSelector.offset().top - 15;
-                if (topOffset < 0) {
-                    topOffset = 0;
+                    lastClickedBatch = d.x;
+                    highlightBatchRow(lastClickedBatch);
+                    lastTimeout = window.setTimeout(function () {
+                        lastTimeout = null;
+                        if (lastClickedBatch != null) {
+                            clearBatchRow(lastClickedBatch);
+                            lastClickedBatch = null;
+                        }
+                    }, 3000); // Clean up after 3 seconds
+
+                    var topOffset = batchSelector.offset().top - 15;
+                    if (topOffset < 0) {
+                        topOffset = 0;
+                    }
+                    $('html,body').animate({scrollTop: topOffset}, 200);
                 }
-                $('html,body').animate({scrollTop: topOffset}, 200);
             });
 }
 


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

Reply via email to