Check for conifg.xml existence in pre-installation
authorTomasz Iwanek <t.iwanek@samsung.com>
Mon, 24 Jun 2013 07:59:10 +0000 (09:59 +0200)
committerTomasz Iwanek <t.iwanek@samsung.com>
Tue, 25 Jun 2013 13:30:15 +0000 (15:30 +0200)
[Issue#]       LINUXWRT-478
[Bug]          Crash of wrt-installer with wrong error code
[Cause]        N/A
[Solution]     Check if config.xml file actually exist before parsing
[Verification] Run:
 wrt-extra-tests-w3c --output=text --regexp='_dq'
 wrt-extra-tests-w3c --output=text --regexp='_dw'
 wrt-extra-tests-w3c --output=text --regexp='_bg'
 wrt-extra-tests-w3c --output=text --regexp='_bh'

Change-Id: I70cec6d1a4af2cc2f0dff7beaf34e3233c76ffbf

src/jobs/widget_install/job_widget_install.cpp
src/jobs/widget_install/widget_install_errors.h

index 9757223..4bbfe02 100644 (file)
@@ -320,6 +320,11 @@ ConfigureResult JobWidgetInstall::prepareInstallation(
         LogError("Failed to unzip for widget");
         result = ConfigureResult::Failed_DrmError;
     }
+    Catch(Exceptions::MissingConfig)
+    {
+        LogError("Failed to localize config.xml");
+        result = ConfigureResult::Failed_InvalidConfig;
+    }
 
     return result;
 }
@@ -656,6 +661,11 @@ ConfigParserData JobWidgetInstall::getWidgetDataFromXML(
                 }
             }
 
+            if(!DPL::Utils::Path(configFile).Exists())
+            {
+                ThrowMsg(Exceptions::MissingConfig, "Config file not exists");
+            }
+
             parser.Parse(configFile,
                     ElementParserPtr(
                         new RootParser<WidgetParser>(configInfo,
index a76637f..89be530 100644 (file)
@@ -43,6 +43,7 @@ DECLARE_JOB_EXCEPTION(Base, ExtractFileFailed, ErrorPackageInvalid)
 DECLARE_JOB_EXCEPTION(Base, EmptyPluginsDirectory, ErrorPackageInvalid)
 DECLARE_JOB_EXCEPTION(Base, PluginsSubdirectory, ErrorPackageInvalid)
 DECLARE_JOB_EXCEPTION(Base, RDSDeltaFailure, ErrorPackageInvalid)
+DECLARE_JOB_EXCEPTION(Base, MissingConfig, ErrorPackageInvalid)
 
 DECLARE_JOB_EXCEPTION(Base, PackageLowerVersion, ErrorPackageLowerVersion)