diff --git a/Server/Database/Database.cpp b/Server/Database/Database.cpp index 492fa25..fd93b63 100644 --- a/Server/Database/Database.cpp +++ b/Server/Database/Database.cpp @@ -47,9 +47,13 @@ Tasks Database::tasks() { std::unordered_map tasks; for (auto iterator = ret.begin(); iterator != ret.end();) { if (iterator->parentId >= 0) { - auto parentTask = tasks.at(iterator->parentId); - parentTask->children.push_back(*iterator); - tasks.insert({iterator->id, &parentTask->children.back()}); + if (tasks.count(iterator->parentId) > 0) { + auto parentTask = tasks.at(iterator->parentId); + parentTask->children.push_back(*iterator); + tasks.insert({iterator->id, &parentTask->children.back()}); + } else { + LOG(warning) << "task`s parent id " << iterator->parentId << " not existed."; + } iterator = ret.erase(iterator); } else { tasks.insert({iterator->id, &(*iterator)});