Bug? Seam-2.0-Beta - HttpSession Creation
patrickmadden Jun 27, 2007 1:39 AMHi I've been using Seam 1.3.alpha for a while and I just upgraded to Seam 2.0 Beta from CVS on June 26th middle of the day. Just curious if there is a known problem with the following:
In my web.xml I define some standard http session listeners as follows:
<listener> <listener-class>com.clooster.web.context.SearchSessionListener</listener-class> </listener>
The code for the listener is as follows:
package com.clooster.web.context; import java.util.logging.Level; import javax.servlet.http.HttpSessionAttributeListener; import javax.servlet.http.HttpSessionBindingEvent; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; import com.clooster.web.util.IdToSessionMap; import com.clooster.xjava.common.XSystem; /** * * @author PatrickMadden * */ public class SearchSessionListener implements HttpSessionListener, HttpSessionAttributeListener { public SearchSessionListener() { super(); XSystem.logInfo("Search Session Listener Allocation"); } public void sessionCreated(HttpSessionEvent evt) { XSystem.logInfo("Session Created = " + evt.getSession().getId()); IdToSessionMap.getInstance().addHttpSession(evt.getSession()); SessionController.getInstance(evt.getSession().getId()); } public void sessionDestroyed(HttpSessionEvent evt) { XSystem.logInfo("Session Destroyed = " + evt.getSession().getId()); IdToSessionMap.getInstance().removeHttpSession(evt.getSession()); SessionController.freeInstance(evt.getSession().getId()); } public void attributeAdded(HttpSessionBindingEvent evt) { logSesionBindingEvent("Added Session attribute: {0} and value: {1}.", evt); } public void attributeRemoved(HttpSessionBindingEvent evt) { logSesionBindingEvent("Removed Session attribute: {0} and value: {1}.", evt); } public void attributeReplaced(HttpSessionBindingEvent evt) { logSesionBindingEvent("Replaced Session attribute: {0} and value: {1}", evt); } protected void logSesionBindingEvent(String msg, HttpSessionBindingEvent evt) { Object[] params = new Object[2]; params[0] = evt.getName(); params[1] = evt.getValue(); if (XSystem.isLoggable(Level.FINE)) XSystem.log(Level.FINE, msg, null, params); params = null; } }
However when the above session created method is called I end up in an endless loop resulting in crap. Not sure if it is my problem but I created a new project using the new Seam Gen and grabbed my old code and put it in the new project.
Here is the call stack once SessionCreated gets called:
01:15:50,171 INFO [Contexts] starting up: org.jboss.seam.web.session
01:16:29,031 ERROR [STDERR] Jun 27, 2007 1:16:29 AM com.clooster.web.context.SearchSessionListener sessionCreated(SearchSessionListener.java:28)
INFO: Session Created = 712DBE64DDDD4035CA78D696353AC6C7
01:16:57,968 INFO [Contexts] starting up: org.jboss.seam.security.identity
01:16:58,000 INFO [Contexts] starting up: org.jboss.seam.web.session
01:17:00,062 ERROR [STDERR] Jun 27, 2007 1:17:00 AM com.clooster.web.context.SearchSessionListener sessionCreated(SearchSessionListener.java:28)
INFO: Session Created = 9BEFD3CEB5AA329B2B1C74F0718EF8AC
01:17:01,031 INFO [Contexts] starting up: org.jboss.seam.security.identity
01:17:01,046 INFO [Contexts] starting up: org.jboss.seam.web.session
01:17:01,765 ERROR [STDERR] Jun 27, 2007 1:17:01 AM com.clooster.web.context.SearchSessionListener sessionCreated(SearchSessionListener.java:28)
INFO: Session Created = 6CF43352A77FE107B9AC9E1D2B73FE13
01:17:48,656 INFO [Contexts] starting up: org.jboss.seam.security.identity
01:17:48,656 INFO [Contexts] starting up: org.jboss.seam.web.session
01:17:50,906 ERROR [STDERR] Jun 27, 2007 1:17:50 AM com.clooster.web.context.SearchSessionListener sessionCreated(SearchSessionListener.java:28)
INFO: Session Created = BFB33DC9C2BE5EA4EDDA3A5D4315D71C
01:17:50,906 INFO [Contexts] starting up: org.jboss.seam.security.identity
01:17:50,906 INFO [Contexts] starting up: org.jboss.seam.web.session
01:17:51,921 ERROR [STDERR] Jun 27, 2007 1:17:51 AM com.clooster.web.context.SearchSessionListener sessionCreated(SearchSessionListener.java:28)
INFO: Session Created = 17CE9ADF31DF5A8299E6A307BF4CC3B9
01:17:51,921 INFO [Contexts] starting up: org.jboss.seam.security.identity
01:17:51,921 INFO [Contexts] starting up: org.jboss.seam.web.session
01:17:52,953 ERROR [STDERR] Jun 27, 2007 1:17:52 AM com.clooster.web.context.SearchSessionListener sessionCreated(SearchSessionListener.java:28)
INFO: Session Created = 920F420E569E95A6E7D163A631B876F1
01:17:52,953 INFO [Contexts] starting up: org.jboss.seam.security.identity
01:17:52,968 INFO [Contexts] starting up: org.jboss.seam.web.session
Any Help is Greatly Appreciated as I really need those session maps to deal with some Flex/Flash components that I'm using.
BTW, using the new Red Hat Developer Studio stuff and the two way modification ability already saved me a lot of time with some stupid CSS stuff I was dealing with.
Thanks again and looking forward to the final release of Seam/RichFaces!!!! You guys do great work.
PVM