Hofknecht / SystemTrayMenu

SystemTrayMenu - Browse and open your files easily
http://hofknecht.eu/systemtraymenu/
GNU General Public License v3.0
642 stars 45 forks source link

[BUG] NullReferenceException StartWorker() #469

Closed Hofknecht closed 1 year ago

Hofknecht commented 1 year ago

1x reported: System.NullReferenceException: Object reference not set to an instance of an object. at SystemTrayMenu.Business.Menus.StartWorker() at SystemTrayMenu.Business.Menus.SwitchOpenClose(Boolean byClick, Boolean isMainPreload) at SystemTrayMenu.Business.Menus.SwitchOpenCloseByTaskbarItem() at SystemTrayMenu.App.TasbkarItemActivated(Object sender, EventArgs e) at System.Windows.Forms.Form.set_Active(Boolean value) at System.Windows.Forms.Form.WmActivate(Message

1x reported: System.NullReferenceException: Object reference not set to an instance of an object. at SystemTrayMenu.Business.Menus.StartWorker() at SystemTrayMenu.Business.Menus.SwitchOpenClose(Boolean byClick, Boolean isMainPreload) at SystemTrayMenu.Business.Menus.SwitchOpenCloseByTaskbarItem() at SystemTrayMenu.App.TasbkarItemActivated(Object sender, EventArgs e) at System.Windows.Forms.Form.OnActivated(EventArgs e) at System.Windows.Forms.Form.set_Active(Boolean value) at System.Windows.Forms.Form.WmActivate(Message

1x reported: System.NullReferenceException: Object reference not set to an instance of an object. at SystemTrayMenu.Business.Menus.StartWorker() at SystemTrayMenu.Business.Menus.SwitchOpenClose(Boolean byClick, Boolean isMainPreload) at SystemTrayMenu.Business.Menus.SwitchOpenCloseByTaskbarItem() at SystemTrayMenu.App.TasbkarItemActivated(Object sender, EventArgs e) at System.Windows.Forms.Form.OnActivated(EventArgs e) at System.Windows.Forms.Form.set_Active(Boolean value) at System.Windows.Forms.Form.WmActivate(Message

1x reported: System.NullReferenceException: Object reference not set to an instance of an object. at SystemTrayMenu.Business.Menus.StartWorker() at SystemTrayMenu.Business.Menus.SwitchOpenClose(Boolean byClick, Boolean isMainPreload) at SystemTrayMenu.Business.Menus.SwitchOpenCloseByTaskbarItem() at SystemTrayMenu.App.TasbkarItemActivated(Object sender, EventArgs e) at System.Windows.Forms.Form.OnActivated(EventArgs e) at System.Windows.Forms.Form.set_Active(Boolean value) at System.Windows.Forms.Form.WmActivate(Message

1x reported: System.NullReferenceException: Object reference not set to an instance of an object. at SystemTrayMenu.Business.Menus.StartWorker() at SystemTrayMenu.Business.Menus.SwitchOpenClose(Boolean byClick, Boolean isMainPreload) at SystemTrayMenu.Business.Menus.SwitchOpenCloseByTaskbarItem() at SystemTrayMenu.App.TasbkarItemActivated(Object sender, EventArgs e) at System.Windows.Forms.Form.OnActivated(EventArgs e) at System.Windows.Forms.Form.set_Active(Boolean value) at System.Windows.Forms.Form.WmActivate(Message

1x reported: System.NullReferenceException: Object reference not set to an instance of an object. at SystemTrayMenu.Business.Menus.StartWorker() at SystemTrayMenu.Business.Menus.SwitchOpenClose(Boolean byClick, Boolean isMainPreload) at SystemTrayMenu.Business.Menus.SwitchOpenCloseByTaskbarItem() at SystemTrayMenu.App.TasbkarItemActivated(Object sender, EventArgs e) at System.Windows.Forms.Form.OnActivated(EventArgs e) at System.Windows.Forms.Form.set_Active(Boolean value) at System.Windows.Forms.Form.WmActivate(Message

Hofknecht commented 1 year ago
internal void StartWorker()
        {
            if (Properties.Settings.Default.GenerateShortcutsToDrives)
            {
                GenerateDriveShortcuts.Start();
            }

            if (!workerMainMenu.IsBusy)
            {
                LoadStarted();
                workerMainMenu.RunWorkerAsync(
                    new object[] { Config.Path, 0 });
            }
        }
Hofknecht commented 1 year ago

for me looks like only workerMainMenu can be null ?! but why =>analyze

topeterk commented 1 year ago

On STM v2 I modified the function due to potential null value warning on the LoadStarted method:

internal void StartWorker()
{
    if (Settings.Default.GenerateShortcutsToDrives)
    {
        GenerateDriveShortcuts.Start();
    }

    if (!workerMainMenu.IsBusy)
    {
        LoadStarted?.Invoke();
        workerMainMenu.RunWorkerAsync(
            new object[] { Config.Path, 0 });
    }
}