You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Leonardo Uribe (JIRA)" <de...@myfaces.apache.org> on 2013/10/16 02:11:42 UTC
[jira] [Resolved] (MYFACES-3792) ConcurrentModificationException in
org.apache.myfaces.config.ManagedBeanDestroyer - when using
TomcatAnnotationLifecycleProvider
[ https://issues.apache.org/jira/browse/MYFACES-3792?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Leonardo Uribe resolved MYFACES-3792.
-------------------------------------
Resolution: Fixed
Fix Version/s: 2.1.13
2.0.19
Assignee: Leonardo Uribe
The stack trace shows there is a modification over the view map while the beans are destroyed. You should have some code in view scope bean under @PreDestroy. But anyway, we can avoid that problem just creating a copy of the keys before iterate.
> ConcurrentModificationException in org.apache.myfaces.config.ManagedBeanDestroyer - when using TomcatAnnotationLifecycleProvider
> --------------------------------------------------------------------------------------------------------------------------------
>
> Key: MYFACES-3792
> URL: https://issues.apache.org/jira/browse/MYFACES-3792
> Project: MyFaces Core
> Issue Type: Bug
> Affects Versions: 2.1.11
> Environment: Linux
> Reporter: Tomasz Szlek
> Assignee: Leonardo Uribe
> Fix For: 2.0.19, 2.1.13
>
>
> Sometimes exception below occurs. It looks like map in ManagedBeanDestroyer is not a concurrence map and this could be an issue.
> lifecycle provider: org.apache.myfaces.config.annotation.TomcatAnnotationLifecycleProvider
> stack trace:
> testjavax.servlet.ServletException
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:229)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.
> java:233)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.
> java:191)
> at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:563)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:1
> 27)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:1
> 02)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.ja
> va:109)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293
> )
> at
> org.apache.coyote.ajp.AjpAprProcessor.process(AjpAprProcessor.java:448)
> at
> org.apache.coyote.ajp.AjpAprProtocol$AjpConnectionHandler.process(AjpAprProtocol.java:399)
> at
> org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1675)
> at java.lang.Thread.run(Thread.java:662)
> Caused by: java.util.ConcurrentModificationException
> at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793)
> at java.util.HashMap$KeyIterator.next(HashMap.java:828)
> at
> org.apache.myfaces.config.ManagedBeanDestroyer.processEvent(ManagedBeanDestroyer.java:100)
> at
> javax.faces.event.SystemEvent.processListener(SystemEvent.java:43)
> at
> org.apache.myfaces.application.ApplicationImpl._traverseListenerList(ApplicationImpl.java:2410)
> at
> org.apache.myfaces.application.ApplicationImpl.access$000(ApplicationImpl.
> java:119)
> at
> org.apache.myfaces.application.ApplicationImpl$SystemListenerEntry.publish(ApplicationImpl.java:2601)
> at
> org.apache.myfaces.application.ApplicationImpl.publishEvent(ApplicationImp
> l.java:592)
> at
> org.apache.myfaces.application.ApplicationImpl.publishEvent(ApplicationImp
> l.java:607)
> at
> javax.faces.component.UIViewRoot$ViewScope.clear(UIViewRoot.java:1596)
> at
> org.apache.myfaces.application.NavigationHandlerImpl.handleNavigation(NavigationHandlerImpl.java:133)
> at
> org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:89)
> at javax.faces.component.UICommand.broadcast(UICommand.java:120)
> at
> javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:1028)
> at
> javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:286)
> at javax.faces.component.UIViewRoot._process(UIViewRoot.java:1375)
> at
> javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752)
> at
> org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:38)
> at
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java
> :170)
> at
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
> ... 19 more
--
This message was sent by Atlassian JIRA
(v6.1#6144)