Author: remy.maucherat(a)jboss.com
Date: 2011-04-19 08:34:05 -0400 (Tue, 19 Apr 2011)
New Revision: 1706
Modified:
trunk/java/org/apache/catalina/Session.java
trunk/java/org/apache/catalina/session/StandardSession.java
trunk/webapps/docs/changelog.xml
Log:
- Add a new session id change event.
Modified: trunk/java/org/apache/catalina/Session.java
===================================================================
--- trunk/java/org/apache/catalina/Session.java 2011-04-15 13:51:28 UTC (rev 1705)
+++ trunk/java/org/apache/catalina/Session.java 2011-04-19 12:34:05 UTC (rev 1706)
@@ -64,6 +64,12 @@
public static final String SESSION_PASSIVATED_EVENT = "passivateSession";
+ /**
+ * The SessionEvent event type when a session is created.
+ */
+ public static final String SESSION_ID_CHANGED_EVENT = "changeIdSession";
+
+
// ------------------------------------------------------------- Properties
Modified: trunk/java/org/apache/catalina/session/StandardSession.java
===================================================================
--- trunk/java/org/apache/catalina/session/StandardSession.java 2011-04-15 13:51:28 UTC
(rev 1705)
+++ trunk/java/org/apache/catalina/session/StandardSession.java 2011-04-19 12:34:05 UTC
(rev 1706)
@@ -332,13 +332,20 @@
public void setId(String id) {
if ((this.id != null) && (manager != null))
- manager.remove(this);
+ manager.remove(this);
+ String oldId = this.id;
this.id = id;
if (manager != null)
manager.add(this);
- tellNew();
+
+ if (oldId == null) {
+ tellNew();
+ } else {
+ // Notify interested session event listeners
+ fireSessionEvent(Session.SESSION_ID_CHANGED_EVENT, oldId);
+ }
}
Modified: trunk/webapps/docs/changelog.xml
===================================================================
--- trunk/webapps/docs/changelog.xml 2011-04-15 13:51:28 UTC (rev 1705)
+++ trunk/webapps/docs/changelog.xml 2011-04-19 12:34:05 UTC (rev 1706)
@@ -16,6 +16,16 @@
<body>
+<section name="JBoss Web 7.0.0.CR1 (remm)">
+ <subsection name="Catalina">
+ <changelog>
+ <fix>
+ Add a new session id changed event to SessionListener, the Servlet API events are
not appropriate. (remm)
+ </fix>
+ </changelog>
+ </subsection>
+</section>
+
<section name="JBoss Web 7.0.0.Beta11 (remm)">
<subsection name="Catalina">
<changelog>
Show replies by date