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: [email protected]
For additional commands, e-mail: [email protected]