You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by mb...@apache.org on 2007/08/10 20:31:18 UTC
svn commit: r564712 -
/commons/proper/el/trunk/src/java/org/apache/commons/el/ExpressionEvaluatorImpl.java
Author: mbenson
Date: Fri Aug 10 11:31:17 2007
New Revision: 564712
URL: http://svn.apache.org/viewvc?view=rev&rev=564712
Log:
refactor parse
Modified:
commons/proper/el/trunk/src/java/org/apache/commons/el/ExpressionEvaluatorImpl.java
Modified: commons/proper/el/trunk/src/java/org/apache/commons/el/ExpressionEvaluatorImpl.java
URL: http://svn.apache.org/viewvc/commons/proper/el/trunk/src/java/org/apache/commons/el/ExpressionEvaluatorImpl.java?view=diff&rev=564712&r1=564711&r2=564712
==============================================================================
--- commons/proper/el/trunk/src/java/org/apache/commons/el/ExpressionEvaluatorImpl.java (original)
+++ commons/proper/el/trunk/src/java/org/apache/commons/el/ExpressionEvaluatorImpl.java Fri Aug 10 11:31:17 2007
@@ -240,28 +240,29 @@
}
// See if it's in the cache
- Object ret = mBypassCache ? null : sCachedExpressionStrings
- .get(pExpressionString);
+ if (!mBypassCache
+ && sCachedExpressionStrings.containsKey(pExpressionString)) {
+ return sCachedExpressionStrings.get(pExpressionString);
+ }
- if (ret == null) {
- // Parse the expression
- Reader r = new StringReader(pExpressionString);
- ELParser parser = new ELParser(r);
- try {
- ret = parser.ExpressionString();
- sCachedExpressionStrings.put(pExpressionString, ret);
- } catch (ParseException exc) {
- throw new ELException(formatParseException(pExpressionString,
- exc));
- } catch (TokenMgrError exc) {
- // Note - this should never be reached, since the parser is
- // constructed to tokenize any input (illegal inputs get
- // parsed to <BADLY_ESCAPED_STRING_LITERAL> or
- // <ILLEGAL_CHARACTER>
- throw new ELException(exc.getMessage());
+ // Parse the expression
+ Reader r = new StringReader(pExpressionString);
+ ELParser parser = new ELParser(r);
+ try {
+ Object result = parser.ExpressionString();
+ if (!mBypassCache) {
+ sCachedExpressionStrings.put(pExpressionString, result);
}
+ return result;
+ } catch (ParseException exc) {
+ throw new ELException(formatParseException(pExpressionString, exc));
+ } catch (TokenMgrError exc) {
+ // Note - this should never be reached, since the parser is
+ // constructed to tokenize any input (illegal inputs get
+ // parsed to <BADLY_ESCAPED_STRING_LITERAL> or
+ // <ILLEGAL_CHARACTER>
+ throw new ELException(exc.getMessage());
}
- return ret;
}
// -------------------------------------