[ 
http://jira.codehaus.org/browse/WAGON-79?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_91905
 ] 

nicolas de loof commented on WAGON-79:
--------------------------------------

The methods that iterates on the List will throw a 
ConcurrentModificationException if the list is modified during iteration. 
Synchronizing only the add/remove will not avoid another thread to fire an 
event and acces the list for iteration.

An alternative to synchronized methods is to use a CopyOnWriteArrayList. For 
java 1.4 compatibilty this requires to add backport-util-concurrent as a 
dependency. 



> ConcurrentModificationException : TransferEventSupport needs synchronization
> ----------------------------------------------------------------------------
>
>                 Key: WAGON-79
>                 URL: http://jira.codehaus.org/browse/WAGON-79
>             Project: wagon
>          Issue Type: Bug
>          Components: wagon-provider-api
>    Affects Versions: 1.0
>         Environment: archiva Snapshot
>            Reporter: nicolas de loof
>         Attachments: WAGON-79.patch
>
>
> I get some thraead-safety issues with maven archiva :
> 2007-04-02 10:11:25,392 [http-8888-1] ERROR [RepositoryServlet]            - 
> "Servlet.service()" pour la servlet RepositoryServlet a généré une exception
> java.util.ConcurrentModificationException
>     at java.util.AbstractList$Itr.checkForComodification(Unknown Source)
>     at java.util.AbstractList$Itr.next(Unknown Source)
>     at 
> org.apache.maven.wagon.events.TransferEventSupport.fireTransferProgress 
> (TransferEventSupport.java:117)
>     at 
> org.apache.maven.wagon.AbstractWagon.fireTransferProgress(AbstractWagon.java:350)
> There is a thread-safety issue in Wagon TransferEventSupport
> The listeners list is an ArrayList and add/remove/fireEvent methods are not 
> synchronized.
> This requires either synchronization or use of a CopyOnWriteArrayList (java5 
> or backport).

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


Reply via email to