Skip to content

Commit cdf0cd1

Browse files
committedFeb 25, 2018
[processing] Fix crash when algorithms fail to prepare
Refs #15640 (cherry-picked from 2900ace)
1 parent 66d5d43 commit cdf0cd1

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed
 

‎python/plugins/processing/algs/qgis/FieldsMapper.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -138,10 +138,11 @@ def prepareAlgorithm(self, parameters, context, feedback):
138138
expression.setDistanceUnits(context.project().distanceUnits())
139139
expression.setAreaUnits(context.project().areaUnits())
140140
if expression.hasParserError():
141-
raise QgsProcessingException(
141+
feedback.reportError(
142142
self.tr(u'Parser error in expression "{}": {}')
143143
.format(expression.expression(),
144144
expression.parserErrorString()))
145+
return False
145146
self.expressions.append(expression)
146147
return True
147148

‎src/core/processing/qgsprocessingalgrunnertask.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,14 @@ QgsProcessingAlgRunnerTask::QgsProcessingAlgRunnerTask( const QgsProcessingAlgor
4141
void QgsProcessingAlgRunnerTask::cancel()
4242
{
4343
mFeedback->cancel();
44+
QgsTask::cancel();
4445
}
4546

4647
bool QgsProcessingAlgRunnerTask::run()
4748
{
49+
if ( isCanceled() )
50+
return false;
51+
4852
connect( mFeedback, &QgsFeedback::progressChanged, this, &QgsProcessingAlgRunnerTask::setProgress );
4953
bool ok = false;
5054
try

0 commit comments

Comments
 (0)
Please sign in to comment.