private Object evaluateExpressionInternal ( String expression , String attrName , PageContext pageContext ) throws JspException { if ( logger . isDebugEnabled ( ) ) logger . debug ( "evaluate expression=\"" + expression + "\"" ) ; Object result = null ; try { VariableResolver vr = ImplicitObjectUtil . getReadVariableResolver ( pageContext ) ; result = getExpressionEvaluator ( ) . evaluateStrict ( expression , vr ) ; } catch ( ExpressionEvaluationException ee ) { // if there is an expression evaluation error set the error and return null if ( logger . isWarnEnabled ( ) ) logger . warn ( Bundle . getString ( "Tags_ExpressionEvaluationFailure" , expression ) ) ; // create the expression info an add it to the error tracking EvalErrorInfo info = new EvalErrorInfo ( ) ; info . evalExcp = ee ; info . expression = expression ; info . attr = attrName ; info . tagType = _tag . getTagName ( ) ; // report the error _tag . registerTagError ( info ) ; return null ; } catch ( Exception e ) { String s = Bundle . getString ( "Tags_ExpressionEvaluationException" , new Object [ ] { expression , e . toString ( ) } ) ; _tag . registerTagError ( s , e ) ; return null ; } if ( logger . isDebugEnabled ( ) ) logger . debug ( "resulting object: " + result ) ; return result ; }
This is the real implementation of evaluateExpression .