67,512
社区成员
发帖
与我相关
我的任务
分享
public void attributeRemoved(HttpSessionBindingEvent se) {
// TODO Auto-generated method stub
if ("user".equals(se.getName())) {
User user = (User) se.getValue();
System.out.println(user.getName() + " has logout");
System.out.println("actionContext: "+ActionContext.getContext());
Set<String> onLineUsers = (Set<String>) ActionContext.getContext()
.getApplication().get("onLineUsers");
onLineUsers.remove(user.getName());
ActionContext.getContext().getApplication().put("onLineUsers",
onLineUsers);
System.out.println(onLineUsers.size());
UserAction.count--;
}
}
//当关闭浏览器session过期时发生异常
fan has logout
actionContext: null
2011-3-7 21:19:25 org.apache.catalina.session.StandardSession removeAttributeInternal
严重: Session attribute event listener threw exception
java.lang.NullPointerException
at com.hisoft.util.MyListener.attributeRemoved(MyListener.java:41)
at org.apache.catalina.session.StandardSession.removeAttributeInternal(StandardSession.java:1675)
at org.apache.catalina.session.StandardSession.expire(StandardSession.java:756)
at org.apache.catalina.session.StandardSession.isValid(StandardSession.java:592)
at org.apache.catalina.session.ManagerBase.processExpires(ManagerBase.java:682)
at org.apache.catalina.session.ManagerBase.backgroundProcess(ManagerBase.java:667)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1316)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590)
at java.lang.Thread.run(Thread.java:662)