Hi Walter,

you are not allowed to iterate over a Collection and change the
underlying Collection at the same time. If this has run before, it was a
"mistake".

Either get first all Names and remove afterwards or just invalidate the
session and all attributes are gone.


so long!
  Simon

Walter Weinmann schrieb:
> 
> Hello,
> 
> I've switched my applicatin from TOMCAT 3.2.3 to 4.0 and get now this error
> ConcurrentModificationException. What is the problem ?
> 
> Best regards
> 
> Walter Weinmann
> 
> ===== Code
> 
> String      lvSessionVariable = "";
> Enumeration lvSessionVariablen = session.getAttributeNames();
> 
> while (lvSessionVariablen.hasMoreElements()) {
>    lvSessionVariable = (String) lvSessionVariablen.nextElement();
>    session.removeAttribute(lvSessionVariable);
> }
> 
> ===== Exception
> 
> java.util.ConcurrentModificationException
> at java.util.HashMap$HashIterator.next(HashMap.java:736)
> at org.apache.catalina.util.Enumerator.nextElement(Unknown Source)
> at org.apache.jsp.bsLogin$jsp._jspService(bsLogin$jsp.java:182)
> at org.apache.jasper.runtime.HttpJspBase.service(Unknown Source)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(Unknown
> Source)
> at org.apache.jasper.servlet.JspServlet.serviceJspFile(Unknown Source)
> at org.apache.jasper.servlet.JspServlet.service(Unknown Source)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown
> Source)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
> at org.apache.catalina.core.StandardWrapperValve.invoke(Unknown Source)
> at org.apache.catalina.core.StandardPipeline.invokeNext(Unknown Source)
> at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source)
> at org.apache.catalina.core.ContainerBase.invoke(Unknown Source)
> at org.apache.catalina.core.StandardContextValve.invoke(Unknown Source)
> at org.apache.catalina.core.StandardPipeline.invokeNext(Unknown Source)
> at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source)
> at org.apache.catalina.core.ContainerBase.invoke(Unknown Source)
> at org.apache.catalina.core.StandardContext.invoke(Unknown Source)
> at org.apache.catalina.core.StandardHostValve.invoke(Unknown Source)
> at org.apache.catalina.core.StandardPipeline.invokeNext(Unknown Source)
> at org.apache.catalina.valves.AccessLogValve.invoke(Unknown Source)
> at org.apache.catalina.core.StandardPipeline.invokeNext(Unknown Source)
> at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source)
> at org.apache.catalina.core.ContainerBase.invoke(Unknown Source)
> at org.apache.catalina.core.StandardEngineValve.invoke(Unknown Source)
> at org.apache.catalina.core.StandardPipeline.invokeNext(Unknown Source)
> at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source)
> at org.apache.catalina.core.ContainerBase.invoke(Unknown Source)
> at org.apache.catalina.connector.http.HttpProcessor.process(Unknown Source)
> at org.apache.catalina.connector.http.HttpProcessor.run(Unknown Source)
> at java.lang.Thread.run(Thread.java:484)

Reply via email to