Serializable template = this.templateCache.get(expression);
if (template == null) {
LOG.debug("Compiled template not found in cache, compiling template and caching.");
ExpressionCompiler compiler = new ExpressionCompiler(expression);
compiler.newContext(context);
template = compiler.compile();
this.templateCache.put(expression, template);
}
return MVEL.executeExpression(template, root, evaluationContext);
} catch (Exception e) {
throw new ExpressionEvaluationException(expression, e);