Improvements to SCS API 09/29109/2
authorLukasz Kostyra <l.kostyra@samsung.com>
Mon, 20 Oct 2014 12:00:32 +0000 (14:00 +0200)
committerJan Olszak <j.olszak@samsung.com>
Mon, 27 Oct 2014 08:50:34 +0000 (01:50 -0700)
[Bug]           * removeAllWrapper caught wrong type of exception
                * AddContainer did not focus container after adding
                * getActiveContainerId segfaulted when no container was present
[Cause]         N/A
[Solution]      N/A
[Verification]  Build, install, run tests.

Change-Id: I6bc665952c0f0c515c3aa548bdd6165b2ee7d55b

server/containers-manager.cpp

index 82be28d..a707fe2 100644 (file)
@@ -490,7 +490,7 @@ void ContainersManager::handleGetContainerIdsCall(dbus::MethodResultBuilder::Poi
 void ContainersManager::handleGetActiveContainerIdCall(dbus::MethodResultBuilder::Pointer result)
 {
     LOGI("GetActiveContainerId call");
-    if (mContainers[mConfig.foregroundId]->isRunning()){
+    if (!mConfig.foregroundId.empty() && mContainers[mConfig.foregroundId]->isRunning()){
         result->set(g_variant_new("(s)", mConfig.foregroundId.c_str()));
     } else {
         result->set(g_variant_new("(s)", ""));
@@ -622,7 +622,7 @@ void ContainersManager::handleAddContainerCall(const std::string& id,
         try {
             LOGD("Removing copied data");
             fs::remove_all(fs::path(path));
-        } catch(const boost::exception& e) {
+        } catch(const std::exception& e) {
             LOGW("Failed to remove data: " << boost::diagnostic_information(e));
         }
     };
@@ -656,8 +656,9 @@ void ContainersManager::handleAddContainerCall(const std::string& id,
         return;
     }
 
-    auto resultCallback = [result, containerPathStr, removeAllWrapper](bool succeeded) {
+    auto resultCallback = [this, id, result, containerPathStr, removeAllWrapper](bool succeeded) {
         if (succeeded) {
+            focus(id);
             result->setVoid();
         } else {
             LOGE("Failed to start container.");