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 f64c121c2f53262ecf9ede264f573baf3927a0d2..1563a94d8973e1533614e2b3c7d4d4975f8cc1ba 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 c1deafeba3fc0e5a44eb7206368d52a8c6440944..954c6d6afa0ab5733e345bc81501f4cbacfb6219 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() {