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)