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