Fix crash opening bulk sender window (rows null during InitializeComponent)
Real stack trace from the operator's machine pinned it down: WinForms fires DataGridView.CellValueChanged as a side effect of DataGridViewColumn.HeaderText assignments inside InitializeComponent(), i.e. before PreviewForm's constructor has had a chance to run RunScan() and populate the `rows` field. UpdateSummaryLabel() then hit rows.Count(...) on a null source. Nothing to do with Outlook/COM at all - a pure WinForms initialization-order gotcha. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
f50624023a
commit
c3d9885ddb
1 file changed
+11
@@ -128,6 +128,17 @@ namespace BulkArchiveMailer.AddIn.UI
|
||||
|
||||
private void UpdateSummaryLabel()
|
||||
{
|
||||
if (rows == null)
|
||||
{
|
||||
// Can be invoked before RunScan() ever ran - most notably,
|
||||
// WinForms fires DataGridView.CellValueChanged as a side
|
||||
// effect of DataGridViewColumn.HeaderText assignments in
|
||||
// InitializeComponent(), i.e. before the constructor (and
|
||||
// therefore RunScan()) has had a chance to populate `rows`.
|
||||
// Nothing to summarize yet in that case.
|
||||
return;
|
||||
}
|
||||
|
||||
var ready = rows.Count(r => r.Job.Status == SendStatus.Ready);
|
||||
var already = rows.Count(r => r.Job.Status == SendStatus.AlreadySent);
|
||||
var errors = rows.Count(r => r.Job.Status == SendStatus.Error);
|
||||
|
||||
Reference in new issue
Block a user