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