From 7b0166a6a4d43b50ce5814b50f97540353d2cc60 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Mon, 10 Jul 2017 17:28:35 +0200 Subject: [PATCH] Modeling: Do not crash on invalid qmodel files in a project Task-number: QTCREATORBUG-18526 Change-Id: I2947f9227c6f96b2b576ca6e942c3f27f28116b3 Reviewed-by: Tim Jenssen Reviewed-by: Jochen Becher --- src/plugins/modeleditor/modelindexer.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/plugins/modeleditor/modelindexer.cpp b/src/plugins/modeleditor/modelindexer.cpp index 2c8a5d85f36..062244a1fe2 100644 --- a/src/plugins/modeleditor/modelindexer.cpp +++ b/src/plugins/modeleditor/modelindexer.cpp @@ -27,6 +27,7 @@ #include "modeleditor_constants.h" +#include "qmt/infrastructure/exceptions.h" #include "qmt/infrastructure/uid.h" #include "qmt/serializer/projectserializer.h" @@ -292,7 +293,12 @@ void ModelIndexer::IndexerThread::onFilesQueued() // load model file qmt::ProjectSerializer projectSerializer; qmt::Project project; - projectSerializer.load(queuedFile.file(), &project); + try { + projectSerializer.load(queuedFile.file(), &project); + } catch (const qmt::Exception &e) { + qWarning() << e.errorMessage(); + return; + } locker.relock(); indexedModel->setModelUid(project.uid()); // add indexedModel to set of indexedModelsByUid