From a3a50a824b9729f4ab297f8a63cd3bb41e2ff46b Mon Sep 17 00:00:00 2001 From: Simeon Andreev Date: Thu, 11 Jun 2026 10:14:00 +0300 Subject: [PATCH 1/2] Trace quick access table disposal Tracing for fail in QuickAccessDialogTest hints at a disposed table prior to updating entries in the table. This change adds tracing for table dispose to validate this. See: https://github.com/eclipse-platform/eclipse.platform.ui/issues/4009 --- .../ui/internal/quickaccess/QuickAccessContents.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/internal/quickaccess/QuickAccessContents.java b/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/internal/quickaccess/QuickAccessContents.java index 3886f6a4257..d86ddbd25ec 100644 --- a/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/internal/quickaccess/QuickAccessContents.java +++ b/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/internal/quickaccess/QuickAccessContents.java @@ -18,6 +18,8 @@ *******************************************************************************/ package org.eclipse.ui.internal.quickaccess; +import java.io.PrintWriter; +import java.io.StringWriter; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -836,6 +838,14 @@ public void mouseMove(MouseEvent e) { }); table.addSelectionListener(SelectionListener.widgetDefaultSelectedAdapter(e -> handleSelection())); + if (Policy.DEBUG_QUICK_ACCESS) { + table.addDisposeListener(e -> { + StringWriter writer = new StringWriter(); + new Exception("provide stack trace").printStackTrace(new PrintWriter(writer)); //$NON-NLS-1$ + String stackTrace = writer.toString(); // stack trace as a string + trace("Table disposed" + System.lineSeparator() + stackTrace); //$NON-NLS-1$ + }); + } return table; } From 23fb09d7ee7dc6cd08c29d30b021704dff3c5f4f Mon Sep 17 00:00:00 2001 From: Simeon Andreev Date: Thu, 11 Jun 2026 16:28:33 +0300 Subject: [PATCH 2/2] TEMPORARY, DONT MERGE --- .../quickaccess/QuickAccessContents.java | 4 ++ .../ui/tests/harness/util/TestRunLogUtil.java | 49 ++++++++++++------- .../quickaccess/QuickAccessDialogTest.java | 5 ++ 3 files changed, 41 insertions(+), 17 deletions(-) diff --git a/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/internal/quickaccess/QuickAccessContents.java b/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/internal/quickaccess/QuickAccessContents.java index d86ddbd25ec..d6898eb3249 100644 --- a/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/internal/quickaccess/QuickAccessContents.java +++ b/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/internal/quickaccess/QuickAccessContents.java @@ -336,6 +336,10 @@ private void refreshTable(QuickAccessElement perfectMatch, List