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

mattcasters pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/hop.git


The following commit(s) were added to refs/heads/main by this push:
     new 61462da8be Fixes #8327: Keep ServerPushSession active in Hop Web so 
logging refresh does not stall (#8344)
61462da8be is described below

commit 61462da8be574290aea94155f6b963961b0e5a47
Author: Abhirama <[email protected]>
AuthorDate: Sun Sep 13 19:37:41 2026 +0530

    Fixes #8327: Keep ServerPushSession active in Hop Web so logging refresh 
does not stall (#8344)
---
 rap/src/main/java/org/apache/hop/ui/hopgui/HopWebEntryPoint.java  | 8 +++++++-
 .../apache/hop/ui/hopgui/file/pipeline/HopGuiPipelineGraph.java   | 3 ---
 .../apache/hop/ui/hopgui/file/workflow/HopGuiWorkflowGraph.java   | 6 ------
 3 files changed, 7 insertions(+), 10 deletions(-)

diff --git a/rap/src/main/java/org/apache/hop/ui/hopgui/HopWebEntryPoint.java 
b/rap/src/main/java/org/apache/hop/ui/hopgui/HopWebEntryPoint.java
index 18e4f4258c..780ed72302 100644
--- a/rap/src/main/java/org/apache/hop/ui/hopgui/HopWebEntryPoint.java
+++ b/rap/src/main/java/org/apache/hop/ui/hopgui/HopWebEntryPoint.java
@@ -252,6 +252,11 @@ public class HopWebEntryPoint extends AbstractEntryPoint {
     // URL params were only for initial project/file; clear so they don't 
affect CLI/run.
     HopGui.getInstance().setCommandLineArguments(new ArrayList<>());
 
+    // Hop Web only delivers background asyncExec updates to the browser while 
a server
+    // push session is running. Start server push for the session so 
pipeline/workflow logs,
+    // notifications, and other async UI updates are pushed immediately 
without stalling.
+    ServerPushSessionFacade.start();
+
     HopWebUrlHelper.setUrlUpdater(new RapHopWebUrlUpdater());
 
     // Persist open tabs when the session ends (browser close, timeout, etc.).
@@ -271,7 +276,8 @@ public class HopWebEntryPoint extends AbstractEntryPoint {
                   NotificationService.getInstance().stop();
                   ServerPushSessionFacade.stop();
                 } catch (Exception e) {
-                  LogChannel.UI.logError("Error stopping notifications on 
session end", e);
+                  LogChannel.UI.logError(
+                      "Error stopping notifications and server push on session 
end", e);
                 }
                 try {
                   HopGui hopGui = HopGui.getInstance();
diff --git 
a/ui/src/main/java/org/apache/hop/ui/hopgui/file/pipeline/HopGuiPipelineGraph.java
 
b/ui/src/main/java/org/apache/hop/ui/hopgui/file/pipeline/HopGuiPipelineGraph.java
index 1bbfc883d3..3cf86d1bd0 100644
--- 
a/ui/src/main/java/org/apache/hop/ui/hopgui/file/pipeline/HopGuiPipelineGraph.java
+++ 
b/ui/src/main/java/org/apache/hop/ui/hopgui/file/pipeline/HopGuiPipelineGraph.java
@@ -167,7 +167,6 @@ import org.apache.hop.ui.hopgui.CanvasSvgFacade;
 import org.apache.hop.ui.hopgui.HopGui;
 import org.apache.hop.ui.hopgui.HopGuiExtensionPoint;
 import org.apache.hop.ui.hopgui.PaletteEngineFilter;
-import org.apache.hop.ui.hopgui.ServerPushSessionFacade;
 import org.apache.hop.ui.hopgui.TestIdFacade;
 import org.apache.hop.ui.hopgui.ToolbarFacade;
 import org.apache.hop.ui.hopgui.context.ContextDialogPlacement;
@@ -5576,7 +5575,6 @@ public class HopGuiPipelineGraph extends 
HopGuiAbstractGraph
   @Override
   public void start() {
     try {
-      ServerPushSessionFacade.start();
       Thread thread =
           new Thread(
               () ->
@@ -5589,7 +5587,6 @@ public class HopGuiPipelineGraph extends 
HopGuiAbstractGraph
                               } else {
                                 pipelineRunDelegate.executePipeline(
                                     hopGui.getLog(), pipelineMeta, false, 
LogLevel.BASIC);
-                                ServerPushSessionFacade.stop();
                               }
                             } catch (Throwable e) {
                               new ErrorDialog(
diff --git 
a/ui/src/main/java/org/apache/hop/ui/hopgui/file/workflow/HopGuiWorkflowGraph.java
 
b/ui/src/main/java/org/apache/hop/ui/hopgui/file/workflow/HopGuiWorkflowGraph.java
index a35b218104..9ae8e84f2a 100644
--- 
a/ui/src/main/java/org/apache/hop/ui/hopgui/file/workflow/HopGuiWorkflowGraph.java
+++ 
b/ui/src/main/java/org/apache/hop/ui/hopgui/file/workflow/HopGuiWorkflowGraph.java
@@ -125,7 +125,6 @@ import org.apache.hop.ui.hopgui.CanvasSvgFacade;
 import org.apache.hop.ui.hopgui.HopGui;
 import org.apache.hop.ui.hopgui.HopGuiExtensionPoint;
 import org.apache.hop.ui.hopgui.PaletteEngineFilter;
-import org.apache.hop.ui.hopgui.ServerPushSessionFacade;
 import org.apache.hop.ui.hopgui.TestIdFacade;
 import org.apache.hop.ui.hopgui.ToolbarFacade;
 import org.apache.hop.ui.hopgui.context.ContextDialogPlacement;
@@ -2622,8 +2621,6 @@ public class HopGuiWorkflowGraph extends 
HopGuiAbstractGraph
       image = "ui/images/run.svg")
   @Override
   public void start() {
-    ServerPushSessionFacade.start();
-
     Thread thread =
         new Thread(
             () ->
@@ -2633,7 +2630,6 @@ public class HopGuiWorkflowGraph extends 
HopGuiAbstractGraph
                           try {
                             workflowRunDelegate.executeWorkflow(
                                 hopGui.getVariables(), workflowMeta, null);
-                            ServerPushSessionFacade.stop();
                           } catch (Exception e) {
                             stopRedrawTimer();
                             new ErrorDialog(
@@ -2911,7 +2907,6 @@ public class HopGuiWorkflowGraph extends 
HopGuiAbstractGraph
       category = 
"i18n::HopGuiWorkflowGraph.ContextualAction.Category.Basic.Text",
       categoryOrder = "1")
   public void startWorkflowHere(HopGuiWorkflowActionContext context) {
-    ServerPushSessionFacade.start();
     Thread thread =
         new Thread(
             () ->
@@ -2924,7 +2919,6 @@ public class HopGuiWorkflowGraph extends 
HopGuiAbstractGraph
                                 hopGui.getVariables(),
                                 workflowMeta,
                                 context.getActionMeta().getName());
-                            ServerPushSessionFacade.stop();
                           } catch (Exception e) {
                             new ErrorDialog(
                                 hopGui.getActiveShell(),

Reply via email to