PFW: Do not stop on hard sync errors

BZ: 76263

When synchronization fails, the parameter-framework should
log a warning and continue synchronization instead of stopping

Change-Id: Ic12d8798ea25584db714ee26e644fac793c28881
Signed-off-by: Kevin Rocard <kevinx.rocard@intel.com>
Reviewed-on: http://android.intel.com:8080/81825
Reviewed-by: Centelles, Sylvain <sylvain.centelles@intel.com>
Reviewed-by: Denneulin, Guillaume <guillaume.denneulin@intel.com>
Tested-by: Dixon, CharlesX <charlesx.dixon@intel.com>
Reviewed-by: cactus <cactus@intel.com>
Tested-by: cactus <cactus@intel.com>
diff --git a/parameter/ConfigurableDomains.cpp b/parameter/ConfigurableDomains.cpp
index 56693ef..a1bfb3c 100644
--- a/parameter/ConfigurableDomains.cpp
+++ b/parameter/ConfigurableDomains.cpp
@@ -22,6 +22,7 @@
  * CREATED: 2011-06-01
  * UPDATED: 2011-07-27
  */
+#include <cassert>
 #include "ConfigurableDomains.h"
 #include "ConfigurableDomain.h"
 #include "ConfigurableElement.h"
@@ -60,8 +61,9 @@
 }
 
 // Configuration application if required
-bool CConfigurableDomains::apply(CParameterBlackboard* pParameterBlackboard, bool bForce, string& strError) const
+void CConfigurableDomains::apply(CParameterBlackboard* pParameterBlackboard, bool bForce) const
 {
+
    CAutoLog autoLog(this, "Applying configurations");
 
     // Syncer set
@@ -77,29 +79,24 @@
 
         const CConfigurableDomain* pChildConfigurableDomain = static_cast<const CConfigurableDomain*>(getChild(uiChild));
 
-        if (!pChildConfigurableDomain->getSequenceAwareness() && !pChildConfigurableDomain->apply(pParameterBlackboard, syncerSet, bForce, strError)) {
-
-            return false;
+        if (!pChildConfigurableDomain->getSequenceAwareness()) {
+            // Apply sequence unaware domain
+            pChildConfigurableDomain->apply(pParameterBlackboard, syncerSet, bForce);
         }
     }
-    // Synchronize
-    if (!syncerSet.sync(*pParameterBlackboard, false, strError)) {
-
-        return false;
-    }
+    // Synchronize sequence unaware domains
+    syncerSet.sync(*pParameterBlackboard, false, NULL);
 
     // Then deal with sequence aware domains
     for (uiChild = 0; uiChild < uiNbConfigurableDomains; uiChild++) {
 
         const CConfigurableDomain* pChildConfigurableDomain = static_cast<const CConfigurableDomain*>(getChild(uiChild));
 
-        if (pChildConfigurableDomain->getSequenceAwareness() && !pChildConfigurableDomain->apply(pParameterBlackboard, syncerSet, bForce, strError)) {
-
-            return false;
+        if (pChildConfigurableDomain->getSequenceAwareness()) {
+            // Apply sequence aware domain
+            pChildConfigurableDomain->apply(pParameterBlackboard, syncerSet, bForce);
         }
     }
-
-    return true;
 }
 
 // From IXmlSource
@@ -123,7 +120,7 @@
         return false;
     }
 
-    log("Creating configurable domain \"%s\"", strName.c_str());
+    log_info("Creating configurable domain \"%s\"", strName.c_str());
 
     // Creation/Hierarchy
     addChild(new CConfigurableDomain(strName));
@@ -140,7 +137,7 @@
         return false;
     }
 
-    log("Deleting configurable domain \"%s\"", strName.c_str());
+    log_info("Deleting configurable domain \"%s\"", strName.c_str());
 
     // Hierarchy
     removeChild(pConfigurableDomain);
@@ -153,7 +150,7 @@
 
 void CConfigurableDomains::deleteAllDomains()
 {
-    log("Deleting all configurable domains");
+    log_info("Deleting all configurable domains");
 
     //remove Children
     clean();
@@ -168,7 +165,7 @@
         return false;
     }
 
-    log("Renaming configurable domain \"%s\" to \"%s\"", strName.c_str(), strNewName.c_str());
+    log_info("Renaming configurable domain \"%s\" to \"%s\"", strName.c_str(), strNewName.c_str());
 
     // Rename
     return pConfigurableDomain->rename(strNewName, strError);
@@ -377,17 +374,19 @@
 }
 
 // Config restore
-bool CConfigurableDomains::restoreConfiguration(const string& strDomain, const string& strConfiguration, CParameterBlackboard* pMainBlackboard, bool bAutoSync, string& strError) const
+bool CConfigurableDomains::restoreConfiguration(const string& strDomain, const string& strConfiguration, CParameterBlackboard* pMainBlackboard, bool bAutoSync, list<string>& lstrError) const
 {
+    string strError;
     // Find domain
     const CConfigurableDomain* pConfigurableDomain = findConfigurableDomain(strDomain, strError);
 
     if (!pConfigurableDomain) {
 
+        lstrError.push_back(strError);
         return false;
     }
     // Delegate
-    return pConfigurableDomain->restoreConfiguration(strConfiguration, pMainBlackboard, bAutoSync, strError);
+    return pConfigurableDomain->restoreConfiguration(strConfiguration, pMainBlackboard, bAutoSync, lstrError);
 }
 
 // Config save