/** Should fail gracefully, even in the face of NoSuchMethodError. */ public void testEvaluate() throws Exception { MetawidgetTag metawidget = new HtmlMetawidgetTag(); metawidget.setPageContext( new MockPageContext() { @Override public ExpressionEvaluator getExpressionEvaluator() { return new ExpressionEvaluator() { @SuppressWarnings("rawtypes") @Override public Object evaluate( String expression, Class arg1, VariableResolver arg2, FunctionMapper arg3) { throw new NoSuchMethodError("Should fail gracefully"); } @Override @SuppressWarnings("rawtypes") public Expression parseExpression(String arg0, Class arg1, FunctionMapper arg2) { throw new NoSuchMethodError("Should fail gracefully"); } }; } }); assertEquals(null, HtmlWidgetBuilderUtils.evaluate("${foo}", metawidget)); }