Author: musachy
Date: Mon Jun 29 20:15:24 2009
New Revision: 789432

URL: http://svn.apache.org/viewvc?rev=789432&view=rev
Log:
WW-3172 Add a flag to disable OGNL cache, which can cause memory leaks

Modified:
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java
    
struts/struts2/trunk/core/src/main/resources/org/apache/struts2/default.properties

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java?rev=789432&r1=789431&r2=789432&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java 
(original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java 
Mon Jun 29 20:15:24 2009
@@ -209,4 +209,7 @@
 
     /** Logs properties that are not found (very verbose) **/
     public static final String STRUTS_LOG_MISSING_PROPERTIES = 
"struts.ognl.logMissingProperties";
+
+    /** Enables caching of parsed OGNL expressions **/
+    public static final String STRUTS_ENABLE_OGNL_EXPRESSION_CACHE = 
"struts.ognl.enableExpressionCache";
 }

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java?rev=789432&r1=789431&r2=789432&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java
 Mon Jun 29 20:15:24 2009
@@ -231,6 +231,9 @@
         if (props.containsKey(StrutsConstants.STRUTS_LOG_MISSING_PROPERTIES))
             props.setProperty("logMissingProperties", 
props.getProperty(StrutsConstants.STRUTS_LOG_MISSING_PROPERTIES));
 
+        if 
(props.containsKey(StrutsConstants.STRUTS_ENABLE_OGNL_EXPRESSION_CACHE))
+            props.setProperty("enableOGNLExpressionCache", 
props.getProperty(StrutsConstants.STRUTS_ENABLE_OGNL_EXPRESSION_CACHE));
+
         String val = 
props.getProperty(StrutsConstants.STRUTS_ALLOW_STATIC_METHOD_ACCESS);
         if (val != null) {
             props.setProperty("allowStaticMethodAccess", val);

Modified: 
struts/struts2/trunk/core/src/main/resources/org/apache/struts2/default.properties
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/resources/org/apache/struts2/default.properties?rev=789432&r1=789431&r2=789432&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/resources/org/apache/struts2/default.properties
 (original)
+++ 
struts/struts2/trunk/core/src/main/resources/org/apache/struts2/default.properties
 Mon Jun 29 20:15:24 2009
@@ -203,4 +203,7 @@
 ### Logs as Warnings properties that are not found (very verbose)
 struts.ognl.logMissingProperties=false
 
+### Chaches parsed OGNL expressions, but can lead to memory leaks
+### if the application generates a lot of different expressions
+struts.ognl.enableExpressionCache=true
 ### END SNIPPET: complete_file


Reply via email to