From b75b42c95878b5a9952a04eb9abcc10c9a984f7f Mon Sep 17 00:00:00 2001
From: buczekp <buczekp>
Date: Mon, 22 Nov 2010 10:13:11 +0000
Subject: [PATCH] [LMS-1858] changed handling of nulls

SVN: 18826
---
 .../java/ch/systemsx/cisd/common/evaluator/Evaluator.java | 6 ++++--
 .../ch/systemsx/cisd/common/evaluator/EvaluatorTest.java  | 8 ++++++++
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/common/source/java/ch/systemsx/cisd/common/evaluator/Evaluator.java b/common/source/java/ch/systemsx/cisd/common/evaluator/Evaluator.java
index f64c121c2f5..1563a94d897 100644
--- a/common/source/java/ch/systemsx/cisd/common/evaluator/Evaluator.java
+++ b/common/source/java/ch/systemsx/cisd/common/evaluator/Evaluator.java
@@ -291,11 +291,13 @@ public final class Evaluator
     /**
      * Evaluates the expression of this evaluator and returns the result as a String. This method
      * can always be called.
+     * <p>
+     * NOTE: null will be returned if expression results in {@link PyNone}
      */
     public String evalAsString() throws EvaluatorException
     {
-        doEval();
-        return getInterpreterResult().toString();
+        Object result = eval();
+        return result == null ? null : result.toString();
     }
 
     private void doEval() throws EvaluatorException
diff --git a/common/sourceTest/java/ch/systemsx/cisd/common/evaluator/EvaluatorTest.java b/common/sourceTest/java/ch/systemsx/cisd/common/evaluator/EvaluatorTest.java
index c1deafeba3f..954c6d6afa0 100644
--- a/common/sourceTest/java/ch/systemsx/cisd/common/evaluator/EvaluatorTest.java
+++ b/common/sourceTest/java/ch/systemsx/cisd/common/evaluator/EvaluatorTest.java
@@ -40,6 +40,14 @@ public class EvaluatorTest
         Evaluator.initialize();
     }
 
+    @Test
+    public void testEvalWithNull()
+    {
+        final Evaluator eval = new Evaluator("None");
+        assertEquals(null, eval.eval());
+        assertEquals(null, eval.evalAsString());
+    }
+
     @Test
     public void testSimpleExpression()
     {
-- 
GitLab