remm 2003/08/26 07:18:54
Modified: catalina/src/share/org/apache/catalina/session
StandardManager.java StandardSession.java
Log:
- Revert my previous fix. I think it could cause sessions to not be invalidated
properly.
- Instead, don't check for validity when activating and passivating.
Revision Changes Path
1.13 +6 -8
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/StandardManager.java
Index: StandardManager.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/StandardManager.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- StandardManager.java 26 Aug 2003 14:11:04 -0000 1.12
+++ StandardManager.java 26 Aug 2003 14:18:54 -0000 1.13
@@ -449,10 +449,8 @@
StandardSession session = getNewSession();
session.readObjectData(ois);
session.setManager(this);
- if (session.isValid()) {
- sessions.put(session.getId(), session);
- session.activate();
- }
+ sessions.put(session.getId(), session);
+ session.activate();
}
} catch (ClassNotFoundException e) {
log.error(sm.getString("standardManager.loading.cnfe", e), e);
1.21 +18 -6
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/StandardSession.java
Index: StandardSession.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/StandardSession.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- StandardSession.java 19 Aug 2003 00:49:58 -0000 1.20
+++ StandardSession.java 26 Aug 2003 14:18:54 -0000 1.21
@@ -731,7 +731,7 @@
HttpSessionEvent event = null;
String keys[] = keys();
for (int i = 0; i < keys.length; i++) {
- Object attribute = getAttribute(keys[i]);
+ Object attribute = getAttributeInternal(keys[i]);
if (attribute instanceof HttpSessionActivationListener) {
if (event == null)
event = new HttpSessionEvent(this);
@@ -753,7 +753,7 @@
HttpSessionEvent event = null;
String keys[] = keys();
for (int i = 0; i < keys.length; i++) {
- Object attribute = getAttribute(keys[i]);
+ Object attribute = getAttributeInternal(keys[i]);
if (attribute instanceof HttpSessionActivationListener) {
if (event == null)
event = new HttpSessionEvent(this);
@@ -1571,6 +1571,18 @@
String results[] = new String[0];
synchronized (attributes) {
return ((String[]) attributes.keySet().toArray(results));
+ }
+
+ }
+
+
+ /**
+ * Return the value of an attribute without a check for validity.
+ */
+ private Object getAttributeInternal(String name) {
+
+ synchronized (attributes) {
+ return (attributes.get(name));
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]