[jbosstools-issues] [JBoss JIRA] (JBIDE-10111) ConcurrentModificationException after closing Seam War project

Viacheslav Kabanovich (Commented) (JIRA) jira-events at lists.jboss.org
Tue Nov 8 14:37:45 EST 2011


    [ https://issues.jboss.org/browse/JBIDE-10111?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12641190#comment-12641190 ] 

Viacheslav Kabanovich commented on JBIDE-10111:
-----------------------------------------------

When project is closed while it is being built, any piece of code accessing it or its resources may become the first one that fails with exception. Even the code like
{code}
if(project.isAccessible()) {
    project.findMarkers();
}
{code}
is not 100% safe, because project can become not accessible right after it has been checked for the accessibility. 

Should we try to prevent all possible exceptions?

                
> ConcurrentModificationException after closing Seam War project
> --------------------------------------------------------------
>
>                 Key: JBIDE-10111
>                 URL: https://issues.jboss.org/browse/JBIDE-10111
>             Project: Tools (JBoss Tools)
>          Issue Type: Bug
>          Components: common/jst/core
>    Affects Versions: 3.3.0.Beta1
>            Reporter: Denis Golovin
>            Assignee: Viacheslav Kabanovich
>             Fix For: 3.3.0.Beta1
>
>
> Now Test case in steps to reproduce fails on last step with bunch of exceptions. First is throws exception
> {noformat}org.eclipse.core.internal.resources.ResourceException: Resource '/seam22hib' is not open.
> 	at org.eclipse.core.internal.resources.Project.checkAccessible(Project.java:150)
> 	at org.eclipse.core.internal.resources.Resource.findMarkers(Resource.java:1007)
> 	at org.jboss.tools.jst.web.kb.internal.validation.KBValidator.findBuilderOrderMarker(KBValidator.java:129)
> 	at org.jboss.tools.jst.web.kb.internal.validation.KBValidator.validateBuilderOrder(KBValidator.java:89)
> 	at org.jboss.tools.jst.web.kb.internal.validation.ELValidator.validateBuilderOrder(ELValidator.java:482)
> 	at org.jboss.tools.jst.web.kb.internal.validation.ELValidator.shouldValidate(ELValidator.java:468)
> 	at org.jboss.tools.common.validation.ValidationContext.init(ValidationContext.java:86)
> 	at org.jboss.tools.common.validation.ValidationContext.<init>(ValidationContext.java:42)
> 	at org.jboss.tools.common.validation.ContextValidationHelper.getValidationContextManager(ContextValidationHelper.java:161)
> 	at org.jboss.tools.common.validation.ContextValidationHelper.getValidationContextManager(ContextValidationHelper.java:153)
> 	at org.jboss.tools.common.validation.ValidatorManager.validateInJob(ValidatorManager.java:65)
> 	at org.eclipse.wst.validation.internal.operations.ValidatorJob.run(ValidatorJob.java:78)
> 	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54){noformat}
> then
> {noformat}java.util.ConcurrentModificationException
> 	at java.util.HashMap$HashIterator.nextEntry(HashMap.java:810)
> 	at java.util.HashMap$KeyIterator.next(HashMap.java:845)
> 	at org.jboss.tools.common.model.project.ext.AbstractClassPathMonitor.syncProcessedPaths(AbstractClassPathMonitor.java:110)
> 	at org.jboss.tools.seam.internal.core.scanner.lib.ClassPath.process(ClassPath.java:73)
> 	at org.jboss.tools.seam.internal.core.scanner.lib.ClassPath.build(ClassPath.java:178)
> 	at org.jboss.tools.seam.internal.core.SeamProject.build(SeamProject.java:371)
> 	at org.jboss.tools.seam.core.SeamCoreBuilder.build(SeamCoreBuilder.java:50)
> 	at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728)
> 	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
> 	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199)
> 	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239)
> 	at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:292)
> 	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
> 	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295)
> 	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:351)
> 	at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374)
> 	at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143)
> 	at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:241)
> 	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54){noformat}
> and finally 
> {noformat}java.util.ConcurrentModificationException
> 	at java.util.HashMap$HashIterator.nextEntry(HashMap.java:810)
> 	at java.util.HashMap$KeyIterator.next(HashMap.java:845)
> 	at org.jboss.tools.common.model.project.ext.AbstractClassPathMonitor.syncProcessedPaths(AbstractClassPathMonitor.java:110)
> 	at org.jboss.tools.seam.internal.core.scanner.lib.ClassPath.process(ClassPath.java:73)
> 	at org.jboss.tools.seam.internal.core.scanner.lib.ClassPath.build(ClassPath.java:178)
> 	at org.jboss.tools.seam.internal.core.SeamProject.build(SeamProject.java:371)
> 	at org.jboss.tools.seam.core.SeamCoreBuilder.build(SeamCoreBuilder.java:50)
> 	at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728)
> 	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
> 	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199)
> 	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239)
> 	at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:292)
> 	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
> 	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295)
> 	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:351)
> 	at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374)
> 	at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143)
> 	at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:241)
> 	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54){noformat}
> here is related part of my .log file
> {noformat}
> !ENTRY org.eclipse.jst.jsp.core 4 4 2011-11-07 12:22:59.680
> !MESSAGE A workspace crash was detected. The previous session did not exit normally. Not using saved taglib indexes.
> !ENTRY org.jboss.tools.jst.web.kb 4 0 2011-11-07 12:24:00.831
> !MESSAGE Resource '/seam22hib' is not open.
> !STACK 1
> org.eclipse.core.internal.resources.ResourceException: Resource '/seam22hib' is not open.
> 	at org.eclipse.core.internal.resources.Project.checkAccessible(Project.java:150)
> 	at org.eclipse.core.internal.resources.Resource.findMarkers(Resource.java:1007)
> 	at org.jboss.tools.jst.web.kb.internal.validation.KBValidator.findBuilderOrderMarker(KBValidator.java:129)
> 	at org.jboss.tools.jst.web.kb.internal.validation.KBValidator.validateBuilderOrder(KBValidator.java:89)
> 	at org.jboss.tools.jst.web.kb.internal.validation.ELValidator.validateBuilderOrder(ELValidator.java:482)
> 	at org.jboss.tools.jst.web.kb.internal.validation.ELValidator.shouldValidate(ELValidator.java:468)
> 	at org.jboss.tools.common.validation.ValidationContext.init(ValidationContext.java:86)
> 	at org.jboss.tools.common.validation.ValidationContext.<init>(ValidationContext.java:42)
> 	at org.jboss.tools.common.validation.ContextValidationHelper.getValidationContextManager(ContextValidationHelper.java:161)
> 	at org.jboss.tools.common.validation.ContextValidationHelper.getValidationContextManager(ContextValidationHelper.java:153)
> 	at org.jboss.tools.common.validation.ValidatorManager.validateInJob(ValidatorManager.java:65)
> 	at org.eclipse.wst.validation.internal.operations.ValidatorJob.run(ValidatorJob.java:78)
> 	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
> !SUBENTRY 1 org.eclipse.core.resources 4 372 2011-11-07 12:24:00.839
> !MESSAGE Resource '/seam22hib' is not open.
> !ENTRY org.eclipse.core.resources 4 2 2011-11-07 12:24:03.211
> !MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.core.resources".
> !STACK 0
> java.util.ConcurrentModificationException
> 	at java.util.HashMap$HashIterator.nextEntry(HashMap.java:810)
> 	at java.util.HashMap$KeyIterator.next(HashMap.java:845)
> 	at org.jboss.tools.common.model.project.ext.AbstractClassPathMonitor.syncProcessedPaths(AbstractClassPathMonitor.java:110)
> 	at org.jboss.tools.seam.internal.core.scanner.lib.ClassPath.process(ClassPath.java:73)
> 	at org.jboss.tools.seam.internal.core.scanner.lib.ClassPath.build(ClassPath.java:178)
> 	at org.jboss.tools.seam.internal.core.SeamProject.build(SeamProject.java:371)
> 	at org.jboss.tools.seam.core.SeamCoreBuilder.build(SeamCoreBuilder.java:50)
> 	at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728)
> 	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
> 	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199)
> 	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239)
> 	at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:292)
> 	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
> 	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295)
> 	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:351)
> 	at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374)
> 	at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143)
> 	at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:241)
> 	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
> !ENTRY org.eclipse.core.resources 4 75 2011-11-07 12:24:21.210
> !MESSAGE Errors occurred during the build.
> !SUBENTRY 1 org.jboss.tools.seam.core 4 75 2011-11-07 12:24:21.210
> !MESSAGE Errors running builder 'Seam Builder' on project 'seam2hib'.
> !STACK 0
> java.util.ConcurrentModificationException
> 	at java.util.HashMap$HashIterator.nextEntry(HashMap.java:810)
> 	at java.util.HashMap$KeyIterator.next(HashMap.java:845)
> 	at org.jboss.tools.common.model.project.ext.AbstractClassPathMonitor.syncProcessedPaths(AbstractClassPathMonitor.java:110)
> 	at org.jboss.tools.seam.internal.core.scanner.lib.ClassPath.process(ClassPath.java:73)
> 	at org.jboss.tools.seam.internal.core.scanner.lib.ClassPath.build(ClassPath.java:178)
> 	at org.jboss.tools.seam.internal.core.SeamProject.build(SeamProject.java:371)
> 	at org.jboss.tools.seam.core.SeamCoreBuilder.build(SeamCoreBuilder.java:50)
> 	at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728)
> 	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
> 	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199)
> 	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239)
> 	at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:292)
> 	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
> 	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295)
> 	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:351)
> 	at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374)
> 	at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143)
> 	at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:241)
> 	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54){noformat}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jbosstools-issues mailing list