You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2015/11/07 22:35:29 UTC
svn commit: r1713184 - in /tomcat/trunk/java/org/apache/catalina/connector:
CoyoteAdapter.java Request.java
Author: markt
Date: Sat Nov 7 21:35:29 2015
New Revision: 1713184
URL: http://svn.apache.org/viewvc?rev=1713184&view=rev
Log:
Handle the unlikely case where different versions of a web application are deployed with different session settings
Modified:
tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java
tomcat/trunk/java/org/apache/catalina/connector/Request.java
Modified: tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java?rev=1713184&r1=1713183&r2=1713184&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java (original)
+++ tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java Sat Nov 7 21:35:29 2015
@@ -757,9 +757,11 @@ public class CoyoteAdapter implements Ad
// Reset mapping
request.getMappingData().recycle();
mapRequired = true;
- // Recycle cookies in case correct context is
- // configured with different settings
+ // Recycle cookies and session info in case the
+ // correct context is configured with different
+ // settings
req.getCookies().recycle();
+ request.recycleSessionInfo();
}
break;
}
Modified: tomcat/trunk/java/org/apache/catalina/connector/Request.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/Request.java?rev=1713184&r1=1713183&r2=1713184&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/Request.java (original)
+++ tomcat/trunk/java/org/apache/catalina/connector/Request.java Sat Nov 7 21:35:29 2015
@@ -468,18 +468,7 @@ public class Request implements HttpServ
notes.clear();
cookies = null;
- if (session != null) {
- try {
- session.endAccess();
- } catch (Throwable t) {
- ExceptionUtils.handleThrowable(t);
- log.warn(sm.getString("coyoteRequest.sessionEndAccessFail"), t);
- }
- }
- session = null;
- requestedSessionCookie = false;
- requestedSessionId = null;
- requestedSessionURL = false;
+ recycleSessionInfo();
if (Globals.IS_SECURITY_ENABLED || Connector.RECYCLE_FACADES) {
parameterMap = new ParameterMap<>();
@@ -513,6 +502,23 @@ public class Request implements HttpServ
}
+ protected void recycleSessionInfo() {
+ if (session != null) {
+ try {
+ session.endAccess();
+ } catch (Throwable t) {
+ ExceptionUtils.handleThrowable(t);
+ log.warn(sm.getString("coyoteRequest.sessionEndAccessFail"), t);
+ }
+ }
+ session = null;
+ requestedSessionCookie = false;
+ requestedSessionId = null;
+ requestedSessionURL = false;
+ requestedSessionSSL = false;
+ }
+
+
// -------------------------------------------------------- Request Methods
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org