From 4d9dca002350c202bfd35c4a1b19c157f48d1c94 Mon Sep 17 00:00:00 2001 From: Soyoung Kim Date: Wed, 5 Jun 2013 17:27:55 +0900 Subject: [PATCH] Fixed error code when wgt file is invalid. [Issue#] N/A [Problem] N/A [Cause] N/A [Solution] add error code when wgt file is invalid [SCMRequest] N/A Change-Id: Ib5bc38f375de8b68ccd0e3bd9e05ed03d9481539 --- src/jobs/widget_install/job_widget_install.cpp | 25 +++++++++++++++++++------ src/jobs/widget_install/job_widget_install.h | 2 ++ 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/jobs/widget_install/job_widget_install.cpp b/src/jobs/widget_install/job_widget_install.cpp index 2778a0e..e9f11a7 100644 --- a/src/jobs/widget_install/job_widget_install.cpp +++ b/src/jobs/widget_install/job_widget_install.cpp @@ -125,6 +125,12 @@ class InstallerTaskFail : if (m_result == ConfigureResult::Failed_InvalidConfig) { ThrowMsg(Jobs::WidgetInstall::Exceptions::WidgetConfigFileInvalid, "invalid config"); + } else if (m_result == ConfigureResult::Failed_OpenZipError) { + ThrowMsg(Jobs::WidgetInstall::Exceptions::OpenZipFailed, + "can't open wgt file"); + } else if (m_result == ConfigureResult::Failed_UnzipError) { + ThrowMsg(Jobs::WidgetInstall::Exceptions::ExtractFileFailed, + "can't extract wgt file"); } else if (m_result == ConfigureResult::Failed_LowerVersion) { ThrowMsg(Jobs::WidgetInstall::Exceptions::PackageLowerVersion, "package version is lower than installed version"); @@ -239,14 +245,11 @@ JobWidgetInstall::JobWidgetInstall( // Any error in acecheck while update will break widget AddTask(new TaskSmack(m_installerContext)); AddTask(new TaskRemoveBackupFiles(m_installerContext)); - } else if (result >= ConfigureResult::Failed && - result <= ConfigureResult::Failed_NotSupportRDSUpdate) { + } else { // Installation is not allowed to proceed due to widget update policy LogWarning("Configure installation failed!"); AddTask(new InstallerTaskFail(result)); - } else { - Assert(false && "Invalid configure result!"); } } @@ -301,10 +304,20 @@ ConfigureResult JobWidgetInstall::prepareInstallation( // Configure installation result = ConfigureInstallation(widgetPath, configData, tempDir); } + Catch(Exceptions::OpenZipFailed) + { + LogError("Failed to unzip for widget"); + result = ConfigureResult::Failed_OpenZipError; + } Catch(Exceptions::ExtractFileFailed) { - LogError("Failed to create temporary path for widget"); - result = ConfigureResult::Failed_InvalidConfig; + LogError("Failed to unzip for widget"); + result = ConfigureResult::Failed_UnzipError; + } + Catch(Exceptions::DrmDecryptFailed) + { + LogError("Failed to unzip for widget"); + result = ConfigureResult::Failed_DrmError; } return result; diff --git a/src/jobs/widget_install/job_widget_install.h b/src/jobs/widget_install/job_widget_install.h index 323dc1b..1eebc7b 100644 --- a/src/jobs/widget_install/job_widget_install.h +++ b/src/jobs/widget_install/job_widget_install.h @@ -48,6 +48,8 @@ enum class ConfigureResult Failed_WidgetRunning, Failed_DrmError, Failed_NotSupportRDSUpdate, + Failed_OpenZipError, + Failed_UnzipError, }; class JobWidgetInstall : -- 2.7.4