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(),