From 8ca5b48e486e25d2c34bc7193a7d2b26ce26eab4 Mon Sep 17 00:00:00 2001 From: DecDuck Date: Sun, 19 Jan 2025 22:22:04 +1100 Subject: [PATCH] fix(download manager): don't crash download manager if multiple errors come in --- .../src/download_manager/download_manager_builder.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/desktop/src-tauri/src/download_manager/download_manager_builder.rs b/desktop/src-tauri/src/download_manager/download_manager_builder.rs index ade8482c..b87b6c70 100644 --- a/desktop/src-tauri/src/download_manager/download_manager_builder.rs +++ b/desktop/src-tauri/src/download_manager/download_manager_builder.rs @@ -284,14 +284,14 @@ impl DownloadManagerBuilder { } fn manage_error_signal(&mut self, error: ApplicationDownloadError) { debug!("got signal Error"); - let current_agent = self.current_download_agent.clone().unwrap(); + if let Some(current_agent) = self.current_download_agent.clone() { + current_agent.on_error(&self.app_handle, error.clone()); - current_agent.on_error(&self.app_handle, error.clone()); + self.stop_and_wait_current_download(); + self.remove_and_cleanup_front_download(¤t_agent.metadata()); - self.stop_and_wait_current_download(); - self.remove_and_cleanup_front_download(¤t_agent.metadata()); - - self.set_status(DownloadManagerStatus::Error(error)); + self.set_status(DownloadManagerStatus::Error(error)); + } } fn manage_cancel_signal(&mut self, meta: &DownloadableMetadata) { debug!("got signal Cancel");