public ValueExpression resolveVariable ( String variable ) { ValueExpression ve = null ; try { if ( _vars != null ) { ve = ( ValueExpression ) _vars . get ( variable ) ; // Is this code in a block that wants to cache // the resulting expression(s) and variable has been resolved? if ( _trackResolveVariables && ve != null ) { _variableResolved = true ; } } if ( ve == null ) { return _target . resolveVariable ( variable ) ; } return ve ; } catch ( StackOverflowError e ) { throw new ELException ( "Could not Resolve Variable [Overflow]: " + variable , e ) ; } }
First tries to resolve agains the inner Map then the wrapped ValueExpression .