From 56b17dba74b9e2d5df5b9ff5c1284bde360e30ca Mon Sep 17 00:00:00 2001 From: Julien Cabieces Date: Tue, 4 Jun 2024 17:29:33 +0200 Subject: [PATCH] fix(MapLayer): Avoid crash when error list is empty --- src/core/qgserror.cpp | 2 +- tests/src/python/test_qgsmaplayer.py | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/core/qgserror.cpp b/src/core/qgserror.cpp index f5684cda399..cc9c129682c 100644 --- a/src/core/qgserror.cpp +++ b/src/core/qgserror.cpp @@ -129,5 +129,5 @@ QString QgsError::message( QgsErrorMessage::Format format ) const QString QgsError::summary() const { // The first message in chain is usually the real error given by backend/server - return mMessageList.first().message(); + return ( mMessageList.isEmpty() ? QString() : mMessageList.first().message() ); } diff --git a/tests/src/python/test_qgsmaplayer.py b/tests/src/python/test_qgsmaplayer.py index a9a7bfc35ea..0cf9cfed33c 100644 --- a/tests/src/python/test_qgsmaplayer.py +++ b/tests/src/python/test_qgsmaplayer.py @@ -542,6 +542,14 @@ class TestQgsMapLayer(QgisTestCase): self.assertFalse(rl.mapTipTemplate()) self.assertFalse(rl.hasMapTips()) + def testError(self): + """ + Test error reporting methods + """ + vl = QgsVectorLayer("ErrorString", "test", "error") + self.assertFalse(vl.isValid()) + self.assertEqual(vl.error().summary(), "") + if __name__ == '__main__': unittest.main()