Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYvan Lussaud2016-01-07 09:15:04 +0000
committerYvan Lussaud2016-01-07 09:15:04 +0000
commitd19f1c1c64970feb88e11d6caa4c6a77261d50a2 (patch)
tree801423d44b6d98b92b269e412803dcdaf4322560
parenta16eb4e1c46a9490835a8e9fbdf235a275957f02 (diff)
downloadorg.eclipse.acceleo-d19f1c1c64970feb88e11d6caa4c6a77261d50a2.tar.gz
org.eclipse.acceleo-d19f1c1c64970feb88e11d6caa4c6a77261d50a2.tar.xz
org.eclipse.acceleo-d19f1c1c64970feb88e11d6caa4c6a77261d50a2.zip
Fixed null variable error when null.
-rw-r--r--query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/runtime/impl/EvaluationServices.java2
-rw-r--r--query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/runtime/test/EvaluationServicesTest.java19
2 files changed, 18 insertions, 3 deletions
diff --git a/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/runtime/impl/EvaluationServices.java b/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/runtime/impl/EvaluationServices.java
index aa8f4f3b4..d7e15e99d 100644
--- a/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/runtime/impl/EvaluationServices.java
+++ b/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/runtime/impl/EvaluationServices.java
@@ -82,7 +82,7 @@ public class EvaluationServices extends AbstractLanguageServices {
Diagnostic diagnostic) {
try {
Object result = variableDefinitions.get(variableName);
- if (result == null) {
+ if (result == null && !variableDefinitions.containsKey(variableName)) {
Nothing placeHolder = nothing(VARIABLE_NOT_FOUND, variableName);
addDiagnosticFor(diagnostic, Diagnostic.ERROR, placeHolder);
result = placeHolder;
diff --git a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/runtime/test/EvaluationServicesTest.java b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/runtime/test/EvaluationServicesTest.java
index 529b4c02a..a0143526e 100644
--- a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/runtime/test/EvaluationServicesTest.java
+++ b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/runtime/test/EvaluationServicesTest.java
@@ -83,6 +83,7 @@ public class EvaluationServicesTest {
variables = new HashMap<String, Object>();
variables.put("x", 1);
variables.put("y", 2);
+ variables.put("z", null);
services = new EvaluationServices(queryEnvironment);
}
@@ -90,9 +91,21 @@ public class EvaluationServicesTest {
* query the value of an existing variable. Expected result : the value set for the variable.
*/
@Test
- public void getExistingVariableTest() {
+ public void getVariableValueNotNull() {
Diagnostic status = new BasicDiagnostic();
+
assertEquals(1, services.getVariableValue(variables, "x", status));
+
+ assertEquals(Diagnostic.OK, status.getSeverity());
+ assertTrue(status.getChildren().isEmpty());
+ }
+
+ @Test
+ public void getVariableValueNull() {
+ Diagnostic status = new BasicDiagnostic();
+
+ assertEquals(null, services.getVariableValue(variables, "z", status));
+
assertEquals(Diagnostic.OK, status.getSeverity());
assertTrue(status.getChildren().isEmpty());
}
@@ -102,9 +115,11 @@ public class EvaluationServicesTest {
* message.
*/
@Test
- public void getNonExistingVariableTest() {
+ public void getVariableValueNonExisting() {
Diagnostic status = new BasicDiagnostic();
+
assertTrue(services.getVariableValue(variables, "xx", status) instanceof Nothing);
+
assertEquals(Diagnostic.ERROR, status.getSeverity());
assertEquals(1, status.getChildren().size());

Back to the top