From 31d88ab4e8e667920dc86a099f3913ccdc72a41d Mon Sep 17 00:00:00 2001 From: tao wang Date: Sun, 8 Oct 2023 14:22:04 +0800 Subject: [PATCH] FIX:add protection if task information is empty jira:[for new] Change-Id: Icfdf254eca23022ea3f861168d3894ef866fe792 --- src/slic3r/GUI/DeviceManager.cpp | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index b318e2882d..1347841841 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -4667,22 +4667,26 @@ void MachineObject::update_slice_info(std::string project_id, std::string profil std::string http_body; if (m_agent->get_subtask_info(subtask_id, &subtask_json, &http_code, &http_body) == 0) { try { - json task_j = json::parse(subtask_json); - if (task_j.contains("content")) { - std::string content_str = task_j["content"].get(); - json content_j = json::parse(content_str); - plate_index = content_j["info"]["plate_idx"].get(); - } + if (!subtask_json.empty()){ - if (task_j.contains("context") && task_j["context"].contains("plates")) { - for (int i = 0; i < task_j["context"]["plates"].size(); i++) { - if (task_j["context"]["plates"][i].contains("index") && task_j["context"]["plates"][i]["index"].get() == plate_index) { - slice_info->thumbnail_url = task_j["context"]["plates"][i]["thumbnail"]["url"].get(); - BOOST_LOG_TRIVIAL(trace) << "task_info: thumbnail url=" << slice_info->thumbnail_url; + json task_j = json::parse(subtask_json); + if (task_j.contains("content")) { + std::string content_str = task_j["content"].get(); + json content_j = json::parse(content_str); + plate_index = content_j["info"]["plate_idx"].get(); + } + + if (task_j.contains("context") && task_j["context"].contains("plates")) { + for (int i = 0; i < task_j["context"]["plates"].size(); i++) { + if (task_j["context"]["plates"][i].contains("index") && task_j["context"]["plates"][i]["index"].get() == plate_index) { + slice_info->thumbnail_url = task_j["context"]["plates"][i]["thumbnail"]["url"].get(); + BOOST_LOG_TRIVIAL(trace) << "task_info: thumbnail url=" << slice_info->thumbnail_url; + } } } - } else { - BOOST_LOG_TRIVIAL(error) << "task_info: no context or plates"; + else { + BOOST_LOG_TRIVIAL(error) << "task_info: no context or plates"; + } } } catch(...) {