Author: markt
Date: Mon Jan 18 09:43:52 2016
New Revision: 1725207

URL: http://svn.apache.org/viewvc?rev=1725207&view=rev
Log:
Handle the case where the session attribute filtering configuration was changed 
while the web application was stopped.

Modified:
    tomcat/trunk/java/org/apache/catalina/ha/session/DeltaSession.java
    tomcat/trunk/java/org/apache/catalina/session/StandardSession.java
    tomcat/trunk/webapps/docs/changelog.xml

Modified: tomcat/trunk/java/org/apache/catalina/ha/session/DeltaSession.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/session/DeltaSession.java?rev=1725207&r1=1725206&r2=1725207&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/ha/session/DeltaSession.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/ha/session/DeltaSession.java Mon Jan 
18 09:43:52 2016
@@ -751,6 +751,11 @@ public class DeltaSession extends Standa
                 }
                 throw wae;
             }
+            // Handle the case where the filter configuration was changed while
+            // the web application was stopped.
+            if (exclude(name, value)) {
+                continue;
+            }
             attributes.put(name, value);
         }
         isValid = isValidSave;

Modified: tomcat/trunk/java/org/apache/catalina/session/StandardSession.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/session/StandardSession.java?rev=1725207&r1=1725206&r2=1725207&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/session/StandardSession.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/session/StandardSession.java Mon Jan 
18 09:43:52 2016
@@ -1635,6 +1635,11 @@ public class StandardSession implements
             if (manager.getContext().getLogger().isDebugEnabled())
                 manager.getContext().getLogger().debug("  loading attribute '" 
+ name +
                     "' with value '" + value + "'");
+            // Handle the case where the filter configuration was changed while
+            // the web application was stopped.
+            if (exclude(name, value)) {
+                continue;
+            }
             attributes.put(name, value);
         }
         isValid = isValidSave;
@@ -1690,8 +1695,7 @@ public class StandardSession implements
             Object value = attributes.get(keys[i]);
             if (value == null)
                 continue;
-            else if ( (value instanceof Serializable)
-                    && (!exclude(keys[i]) )) {
+            else if (isAttributeDistributable(keys[i], value) && 
!exclude(keys[i], value)) {
                 saveNames.add(keys[i]);
                 saveValues.add(value);
             } else {
@@ -1741,8 +1745,8 @@ public class StandardSession implements
      * <li>{@link Manager#willAttributeDistribute(String, Object)}</li>
      * </ul>
      * Note: This method deliberately does not check
-     *       {@link #isAttributeDistributable(String, Object)} which is
-     *       deliberately separate to support the checks required in
+     *       {@link #isAttributeDistributable(String, Object)} which is kept
+     *       separate to support the checks required in
      *       {@link #setAttribute(String, Object, boolean)}
      *
      * @param name  The attribute name

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1725207&r1=1725206&r2=1725207&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Mon Jan 18 09:43:52 2016
@@ -203,7 +203,9 @@
         filtered bases on attribute name to all session manager 
implementations.
         Note that configuration attribute name has changed from
         <code>sessionAttributeFilter</code> to
-        <code>sessionAttributeNameFilter</code>. (markt)
+        <code>sessionAttributeNameFilter</code>. Apply the filter on load as
+        well as unload to ensure that configuration changes made while the web
+        application is stopped are applied to any persisted data. (markt)
       </add>
     </changelog>
   </subsection>



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to