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)