diff --git a/src/core/qgspointlocator.cpp b/src/core/qgspointlocator.cpp index b0b5437ea33..57cd030bed4 100644 --- a/src/core/qgspointlocator.cpp +++ b/src/core/qgspointlocator.cpp @@ -1160,8 +1160,15 @@ bool QgsPointLocator::rebuildIndex( int maxFeaturesToIndex ) } QgsPointLocator_Stream stream( dataList ); - mRTree.reset( RTree::createAndBulkLoadNewRTree( RTree::BLM_STR, stream, *mStorage, fillFactor, indexCapacity, + try { + mRTree.reset( RTree::createAndBulkLoadNewRTree( RTree::BLM_STR, stream, *mStorage, fillFactor, indexCapacity, leafCapacity, dimension, variant, indexId ) ); + } catch (const std::exception& e) { + QgsDebugError(QStringLiteral("An exception has occurred during the creation of RTree: %1").arg(e.what())); + destroyIndex(); + return false; + } + if ( ctx && mRenderer ) {