From 09612b6709759c631d327f93b1a5cfdb007f2d63 Mon Sep 17 00:00:00 2001 From: John Maxwell Date: Fri, 8 May 2026 08:56:09 -0700 Subject: [PATCH] Fix more problems with LT-22357 --- .../FwControls/ProgressDialogWithTask.cs | 66 ++++++++++--------- Src/xWorks/XhtmlDocView.cs | 4 ++ 2 files changed, 39 insertions(+), 31 deletions(-) diff --git a/Src/Common/Controls/FwControls/ProgressDialogWithTask.cs b/Src/Common/Controls/FwControls/ProgressDialogWithTask.cs index 32e6eea516..e25bfa7293 100644 --- a/Src/Common/Controls/FwControls/ProgressDialogWithTask.cs +++ b/Src/Common/Controls/FwControls/ProgressDialogWithTask.cs @@ -255,20 +255,20 @@ public virtual string Message { CheckDisposed(); - if (m_fCreatedProgressDlg && m_synchronizeInvoke.InvokeRequired) + try { - try + if (m_fCreatedProgressDlg && m_synchronizeInvoke.InvokeRequired) { m_synchronizeInvoke.Invoke((Action)(s => m_progressDialog.Message = s), new[] { value }); } - catch (Exception e) - { - // Fixes LT-22357. - Debug.Assert(false); - } + else + m_progressDialog.Message = value; + } + catch (Exception e) + { + // Fixes LT-22357. + Debug.Assert(false); } - else - m_progressDialog.Message = value; } } @@ -361,20 +361,21 @@ public int Minimum { CheckDisposed(); - if (m_fCreatedProgressDlg && m_synchronizeInvoke.InvokeRequired) + try { - try + if (m_fCreatedProgressDlg && m_synchronizeInvoke.InvokeRequired) { m_synchronizeInvoke.Invoke((Action)(i => m_progressDialog.Minimum = i), new object[] { value }); } - catch (Exception e) - { - // Fixes LT-22357. - Debug.Assert(false); - } + else + m_progressDialog.Minimum = value; + + } + catch (Exception e) + { + // Fixes LT-22357. + Debug.Assert(false); } - else - m_progressDialog.Minimum = value; } } @@ -398,20 +399,20 @@ public int Maximum { CheckDisposed(); - if (m_fCreatedProgressDlg && m_synchronizeInvoke.InvokeRequired) + try { - try + if (m_fCreatedProgressDlg && m_synchronizeInvoke.InvokeRequired) { m_synchronizeInvoke.Invoke((Action)(i => m_progressDialog.Maximum = i), new object[] { value }); } - catch (Exception e) - { - // Fixes LT-22357. - Debug.Assert(false); - } + else + m_progressDialog.Maximum = value; + } + catch (Exception e) + { + // Fixes LT-22357. + Debug.Assert(false); } - else - m_progressDialog.Maximum = value; } } #endregion @@ -829,10 +830,13 @@ private void m_progressDialog_FormClosing(object sender, FormClosingEventArgs e) private void m_worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { - if (m_fCreatedProgressDlg && m_synchronizeInvoke.InvokeRequired) - m_synchronizeInvoke.Invoke((Action)m_progressDialog.Close, null); - else - m_progressDialog.Close(); + if (m_progressDialog != null) + { + if (m_fCreatedProgressDlg && m_synchronizeInvoke.InvokeRequired) + m_synchronizeInvoke.Invoke((Action)m_progressDialog.Close, null); + else + m_progressDialog.Close(); + } } #endregion } diff --git a/Src/xWorks/XhtmlDocView.cs b/Src/xWorks/XhtmlDocView.cs index 67b638d9fa..15486d2275 100644 --- a/Src/xWorks/XhtmlDocView.cs +++ b/Src/xWorks/XhtmlDocView.cs @@ -1527,6 +1527,10 @@ private object SaveConfiguredXhtml(IThreadedProgress progress, object[] args) progress.Message = xWorksStrings.ksObtainingEntriesToDisplay; var configuration = new DictionaryConfigurationModel(configurationFile, Cache); publicationDecorator.Refresh(); + if (Clerk.IsDisposed) + { + return null; + } var entriesToPublish = publicationDecorator.GetEntriesToPublish(m_propertyTable, Clerk.VirtualFlid); var start = DateTime.Now; var entriesPerPage = allOnOnePage ? entriesToPublish.Length : LcmXhtmlGenerator.EntriesPerPage;