-
Bug
-
Resolution: Done
-
Major
-
None
-
None
JBoss AS 7.1.x has a bug with using session bean scope in a HttpSessionListener.
When i inject a session scope bean in a HttpSessionListener and i try to populate attribute in sessionCreated() method many HttpSession are created by JBoss AS. Is it normal the a web server create many Http session for the same request ?
Normally, this behaviour should work. See : http://docs.jboss.org/cdi/api/1.1-PRD/javax/enterprise/context/SessionScoped.html
I did a light Web Project to explain the problem with 1 JSP, 1 SessionScope bean and 1 HttpSessionListener.
Here is the code.
JSP page :
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
SessionScope bean :
@Named
@SessionScoped
public class UserState implements Serializable {
private int state;
public int getState()
{ return state; }public void setState(int state)
{ this.state = state; }}
HttpSessionListener :
@WebListener
public class SessionListener implements HttpSessionListener {
@Inject private UserState userState;
@Override
public void sessionCreated(HttpSessionEvent event)
@Override
public void sessionDestroyed(HttpSessionEvent event) {}
}
After execution, you can read in the console at least 2 http session creation like this :
New HTTP Session created : zvlF6vGLP1AaXM-rzFU02wAJ.undefined
New HTTP Session created : TlrmmA8Eu4v32SHDT0QBBZza.undefined
The first session seams to be the one which is used by the client. There is one more problem : The polutated attributes of the session scope bean are ignored after HttpSessionListener execution. At the end all session scope attributes are null.
- relates to
-
WFLY-1533 UT015005: Error invoking method requestDestroyed on listener class
- Closed