Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcbrun2015-05-07 16:16:23 +0000
committerMaxime Porhel2015-05-11 12:19:00 +0000
commitd73c529a2710ea78d8ed5756b8568565bae7b448 (patch)
tree7e08ce917e93c7b74cdd33246cec1fbfd6669ecc
parentfd6ab8d04864414707f1772fe1de85c4a50f7618 (diff)
downloadorg.eclipse.sirius-d73c529a2710ea78d8ed5756b8568565bae7b448.tar.gz
org.eclipse.sirius-d73c529a2710ea78d8ed5756b8568565bae7b448.tar.xz
org.eclipse.sirius-d73c529a2710ea78d8ed5756b8568565bae7b448.zip
[463226] Report runtime errors back through EvaluationException
Bug: 463226 Change-Id: Id0358cc3181a7bf701f30e8ff560478c2704b681 Signed-off-by: Cedric Brun <cedric.brun@obeo.fr>
-rw-r--r--plugins/org.eclipse.sirius.common.acceleo.aql/src/org/eclipse/sirius/common/acceleo/aql/business/internal/AQLSiriusInterpreter.java4
1 files changed, 4 insertions, 0 deletions
diff --git a/plugins/org.eclipse.sirius.common.acceleo.aql/src/org/eclipse/sirius/common/acceleo/aql/business/internal/AQLSiriusInterpreter.java b/plugins/org.eclipse.sirius.common.acceleo.aql/src/org/eclipse/sirius/common/acceleo/aql/business/internal/AQLSiriusInterpreter.java
index 6ecdeb8645..84f8a87b69 100644
--- a/plugins/org.eclipse.sirius.common.acceleo.aql/src/org/eclipse/sirius/common/acceleo/aql/business/internal/AQLSiriusInterpreter.java
+++ b/plugins/org.eclipse.sirius.common.acceleo.aql/src/org/eclipse/sirius/common/acceleo/aql/business/internal/AQLSiriusInterpreter.java
@@ -37,6 +37,7 @@ import org.eclipse.acceleo.query.validation.type.EClassifierType;
import org.eclipse.acceleo.query.validation.type.IType;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.common.util.Diagnostic;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EStructuralFeature.Setting;
@@ -184,6 +185,9 @@ public class AQLSiriusInterpreter extends AcceleoAbstractInterpreter {
build = parsedExpressions.get(expression);
IQueryEvaluationEngine evaluationEngine = QueryEvaluation.newEngine(queryEnvironment);
EvaluationResult evalResult = evaluationEngine.eval(build, variables);
+ if (evalResult.getDiagnostic().getSeverity() == Diagnostic.ERROR) {
+ throw new EvaluationException(evalResult.getDiagnostic().getMessage(), evalResult.getDiagnostic().getException());
+ }
return evalResult.getResult();
} catch (ExecutionException e) {
throw new EvaluationException(e.getCause());

Back to the top