You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2002/02/21 18:42:10 UTC
DO NOT REPLY [Bug 6617] New: -
Iterating over session attribute name enumeration fails with a ConcurrentModificationException on org.apache.catalina.util.Enumerator.nextElement(Enumerator.java:166);
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6617>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6617
Iterating over session attribute name enumeration fails with a ConcurrentModificationException on org.apache.catalina.util.Enumerator.nextElement(Enumerator.java:166);
Summary: Iterating over session attribute name enumeration fails
with a ConcurrentModificationException on
org.apache.catalina.util.Enumerator.nextElement(Enumerat
or.java:166);
Product: Tomcat 4
Version: 4.0.1 Final
Platform: All
OS/Version: Other
Status: NEW
Severity: Critical
Priority: Other
Component: Catalina
AssignedTo: tomcat-dev@jakarta.apache.org
ReportedBy: kevin.ross@bredex.com
Attempting to clean up the session by iterating over the enumeration of
attribute names fails with a ConcurrentModificationException on
org.apache.catalina.util.Enumerator.nextElement(Enumerator.java:166);
=========CODE=====================================
Enumeration enumeration = session.getAttributeNames();
System.out.println("Enum: " + enumeration);
while(enumeration.hasMoreElements()) {
String name = null;
try{
name = (String)enumeration.nextElement();
}
catch(Throwable t){
System.out.println("Caught Throwable while getting next element from
enumeration. name: " + name);
t.printStackTrace();
break;
}
System.out.println("Attempting to remove from enumeration: " + name);
session.removeAttribute(name);
System.out.println("Done removing from enumeration: " + name + ".");
}
=========LOG======================================
Cleaning up the session...
Enumeration: org.apache.catalina.util.Enumerator@f2225f
Attempting to remove from enumeration: mk
Done removing from enumeration: mk.
Caught Throwable while getting next element from enumeration. name: null
java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:750)
at java.util.HashMap$KeyIterator.next(HashMap.java:786)
at org.apache.catalina.util.Enumerator.nextElement(Enumerator.java:166)
at com.bredex.servlet.Login.service(Login.java:113)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext
(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:201)
at org.apache.catalina.core.StandardPipeline.invokeNext
(StandardPipeline.java:566)
at org.apache.catalina.valves.CertificatesValve.invoke
(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline.invokeNext
(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke
(StandardContext.java:2344)
at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:164)
at org.apache.catalina.core.StandardPipeline.invokeNext
(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke
(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext
(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext
(StandardPipeline.java:564)
at org.apache.catalina.valves.AccessLogValve.invoke
(AccessLogValve.java:462)
at org.apache.catalina.core.StandardPipeline.invokeNext
(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:163)
at org.apache.catalina.core.StandardPipeline.invokeNext
(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process
(HttpProcessor.java:1011)
at org.apache.catalina.connector.http.HttpProcessor.run
(HttpProcessor.java:1106)
at java.lang.Thread.run(Thread.java:536)
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>