Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.0
-
None
-
Operating System: All
Platform: All
-
30910
Description
The implementation of parseExpression in the EL expression evaluator does not conform to the JSP 2.0 specification. The javadoc for the fMapper argument states that
"The ExpressionEvaluatormustnotholdontotheFunctionMapperreferenceafter returning fromparseExpression(). TheExpression object returned must invoke the same functions regardless of whether the mappings in the providedFunctionMapper instance change between calling ExpressionEvaluator.parseExpression() andExpression.evaluate()."
The test case which I will attach clearly shows that this is not the case.
Why hasn't anybody noticed this before, you may ask? I suspect that the current implementation of Tomcat never updates the bindings in its function mapper once one is constructed, since the functions are defined at web-app load time and can't be updated after that.