[jboss-jira] [JBoss JIRA] Updated: (JBVFS-108) ConcurrentModificationException in AbstractVFSContext.getTempInfos

Ian Springer (JIRA) jira-events at lists.jboss.org
Fri Apr 17 15:14:22 EDT 2009


     [ https://jira.jboss.org/jira/browse/JBVFS-108?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ian Springer updated JBVFS-108:
-------------------------------

    Attachment: JBVFS-108.patch


Here's a patch that should fix this in 99% of cases by iterating over a copy of the tempInfos Map instead of the original. A CME is still possible, though much less likely, if another thread modifies the original Map in the middle of the iteration needed to make the copy.


> ConcurrentModificationException in AbstractVFSContext.getTempInfos
> ------------------------------------------------------------------
>
>                 Key: JBVFS-108
>                 URL: https://jira.jboss.org/jira/browse/JBVFS-108
>             Project: JBoss VFS
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>         Environment: AS version: 5.1.0.CR1 (build: SVNTag=JBoss_5_1_0_CR1 date=200904171555)
> http://anonsvn.jboss.org/repos/jbossas/branches/Branch_5_x  Revision: 87503
> Java version: 1.5.0_17, vendor: Sun Microsystems Inc.
>            Reporter: Ondrej Žižka
>            Assignee: Jason T. Greene
>            Priority: Critical
>         Attachments: JBVFS-108.patch
>
>
> (Moved from EMBJOPR; seen during testStopAndStartWar().)
> -----------------
> java.util.ConcurrentModificationException
> at java.util.HashMap$HashIterator.nextEntry(HashMap.java:841)
> at java.util.HashMap$EntryIterator.next(HashMap.java:883)
> at java.util.HashMap$EntryIterator.next(HashMap.java:881)
> at org.jboss.virtual.plugins.context.AbstractVFSContext.getTempInfos(AbstractVFSContext.java:426)
> at org.jboss.virtual.plugins.registry.DefaultVFSRegistry.getFile(DefaultVFSRegistry.java:75)
> at org.jboss.virtual.plugins.registry.DefaultVFSRegistry.getFile(DefaultVFSRegistry.java:121)
> at org.jboss.virtual.protocol.AbstractVFSHandler.openConnection(AbstractVFSHandler.java:71)
> at java.net.URL.openConnection(URL.java:943)
> at java.net.URL.openStream(URL.java:1007)
> at org.jboss.seam.deployment.SeamDeploymentProperties.addPropertiesFromResourceBundle(SeamDeploymentProperties.java:64)
> at org.jboss.seam.deployment.SeamDeploymentProperties.getPropertyValues(SeamDeploymentProperties.java:47)
> at org.jboss.seam.deployment.DeploymentStrategy.initDeploymentHandlers(DeploymentStrategy.java:90)
> at org.jboss.seam.deployment.DeploymentStrategy.getDeploymentHandlers(DeploymentStrategy.java:82)
> at org.jboss.seam.deployment.HotDeploymentStrategy.<init>(HotDeploymentStrategy.java:74)
> at org.jboss.seam.init.Initialization.createHotDeployment(Initialization.java:811)
> at org.jboss.seam.init.Initialization.redeploy(Initialization.java:739)
> at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:44)
> at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:38)
> at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90)
> at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
> at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
> at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
> at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
> at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:390)
> at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:517)
> at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)
> at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
> at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
> 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:235)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
> at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
> at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
> at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:567)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
> at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
> at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:601)
> at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
> at java.lang.Thread.run(Thread.java:595) 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       




More information about the jboss-jira mailing list