Catch problems removing documents/directories

This commit is contained in:
David Capello 2015-04-08 20:46:00 -03:00
parent 9b692cb14a
commit 409d575948

View File

@ -141,6 +141,7 @@ void Session::saveDocumentChanges(app::Document* doc)
void Session::removeDocument(app::Document* doc) void Session::removeDocument(app::Document* doc)
{ {
try {
delete_document_internals(doc); delete_document_internals(doc);
// Delete document backup directory // Delete document backup directory
@ -148,6 +149,10 @@ void Session::removeDocument(app::Document* doc)
base::convert_to<std::string>(doc->id())); base::convert_to<std::string>(doc->id()));
if (base::is_directory(dir)) if (base::is_directory(dir))
deleteDirectory(dir); deleteDirectory(dir);
}
catch (const std::exception&) {
// TODO Log this error
}
} }
void Session::restoreBackup(Backup* backup) void Session::restoreBackup(Backup* backup)
@ -199,6 +204,10 @@ std::string Session::pidFilename() const
void Session::deleteDirectory(const std::string& dir) void Session::deleteDirectory(const std::string& dir)
{ {
ASSERT(!dir.empty());
if (dir.empty())
return;
for (auto& item : base::list_files(dir)) { for (auto& item : base::list_files(dir)) {
std::string objfn = base::join_path(dir, item); std::string objfn = base::join_path(dir, item);
if (base::is_file(objfn)) if (base::is_file(objfn))