You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Udayanga Wickramasinghe (Updated) (JIRA)" <ji...@apache.org> on 2011/10/07 12:38:29 UTC

[jira] [Updated] (AXIS2-5152) RepositoryListener ConcurrentModification Exception when accessing DeploymentEngine deployerMap

     [ https://issues.apache.org/jira/browse/AXIS2-5152?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Udayanga Wickramasinghe updated AXIS2-5152:
-------------------------------------------

    Attachment: AXIS2-5152_update.patch

i am attaching the patch which uses concurrent Hash Map for this issue . please review and commit , the most appropriate solution. personally i prefer the patch i submitted earlier since it would be the most simple and consistent solution with the existing implementation :)
                
> RepositoryListener ConcurrentModification Exception when accessing DeploymentEngine deployerMap
> -----------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-5152
>                 URL: https://issues.apache.org/jira/browse/AXIS2-5152
>             Project: Axis2
>          Issue Type: Bug
>          Components: kernel
>            Reporter: Udayanga Wickramasinghe
>         Attachments: AXIS2-5152.patch, AXIS2-5152_update.patch
>
>
> Axis2 DeploymentEngine deployerMap seems to be not thread safe. Following exception can be thrown when there is a high concurrent acceess scenario with multiple deployers in place..
> Exception in thread "Timer-3" java.util.ConcurrentModificationException
>         at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793)
>         at java.util.HashMap$EntryIterator.next(HashMap.java:834)
>         at java.util.HashMap$EntryIterator.next(HashMap.java:832)
>         at org.apache.axis2.deployment.RepositoryListener.loadOtherDirectories(R
> epositoryListener.java:270)
>         at org.apache.axis2.deployment.RepositoryListener.checkServices(Reposito
> ryListener.java:253)
>         at org.apache.axis2.deployment.RepositoryListener.startListener(Reposito
> ryListener.java:365)
>         at org.apache.axis2.deployment.scheduler.SchedulerTask.checkRepository(S
> chedulerTask.java:73)
>         at org.apache.axis2.deployment.scheduler.SchedulerTask.run(SchedulerTask
> .java:94)
>         at org.apache.axis2.deployment.scheduler.Scheduler$SchedulerTimerTask.ru
> n(Scheduler.java:93)
>         at java.util.TimerThread.mainLoop(Timer.java:512)
>         at java.util.TimerThread.run(Timer.java:462)

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

        

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org