[jira] Updated: (WAGON-79) ConcurrentModificationException : TransferEventSupport needs synchronization

2008-05-14 Thread Brett Porter (JIRA)

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

Brett Porter updated WAGON-79:
--

Fix Version/s: 1.0-beta-3

> ConcurrentModificationException : TransferEventSupport needs synchronization
> 
>
> Key: WAGON-79
> URL: http://jira.codehaus.org/browse/WAGON-79
> Project: Maven Wagon
>  Issue Type: Bug
>  Components: wagon-provider-api
>Affects Versions: 1.0-beta-3
> Environment: archiva Snapshot
>Reporter: nicolas de loof
> Fix For: 1.0-beta-3
>
> Attachments: WAGON-79-testcase.patch, WAGON-79.patch
>
>
> I get some thraead-safety issues with maven archiva :
> 2007-04-02 10:11:25,392 [http--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




[jira] Updated: (WAGON-79) ConcurrentModificationException : TransferEventSupport needs synchronization

2007-04-03 Thread nicolas de loof (JIRA)

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

nicolas de loof updated WAGON-79:
-

Attachment: WAGON-79-testcase.patch

This new patch includes a test-case that demonstrates the issue.
This may not be fully reproductible as unit-testing thread safety is not easy. 

The idea of the test is :
create a listener (mock1) that takes 500ms to handle the event.
the listener is registered 2 times.
a new thread is started, with a Runnable that will fire an event.
The main test Thread waits this new thread to be started and fire secondevent. 
The wait-timing is expected to have :
- Testcase thread running
- Event fired from second thread, first listener notified (500ms wait)

mock1 is registered as a 3d listener. The listener list is updated
when the second thread iterates the list for next listener, the list has been 
updated and a ConcurrentModificationException is thrown.

I don't know any thread-safety unit tool that may make such testcase esaier / 
cleaner.



> 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-testcase.patch, WAGON-79.patch
>
>
> I get some thraead-safety issues with maven archiva :
> 2007-04-02 10:11:25,392 [http--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




[jira] Updated: (WAGON-79) ConcurrentModificationException : TransferEventSupport needs synchronization

2007-04-03 Thread nicolas de loof (JIRA)

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

nicolas de loof updated WAGON-79:
-

Attachment: WAGON-79.patch

synchronized acces to listeners ArrayList

> 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--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