I've attached a simple "synchronized" patch for this, but htis will require to set wagon dependencies to 2.0-SNAPSHOT. This may have some incidence on archiva stability.
2007/4/3, nicolas de loof <[EMAIL PROTECTED]>:
This seems to be a thread-safety issue in Wagon TransferEventSupport<http://maven.apache.org/wagon/wagon-provider-api/xref/org/apache/maven/wagon/events/TransferEventSupport.html> The listeners list is an ArrayList and add/remove/fireEvent methods are not synchronized. This requires either synchronization or use of a CopyOnWriteArrayList. I've created http://jira.codehaus.org/browse/WAGON-79 for this. 2007/4/2, nicolas de loof <[EMAIL PROTECTED]>: > > Hello, > > I've setup archiva as proxy to maven central. I'm using a recent > snapshot build. > I get sometimes (?) 500 errors when downloading artifacts. According to > logs, this is a ConcurrentModificationException. > > Is this a known bug ? > > Here is the stacktrace : > > > 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) > at org.apache.maven.wagon.AbstractWagon.transfer(AbstractWagon.java > :336) > at org.apache.maven.wagon.AbstractWagon.getTransfer ( > AbstractWagon.java:199) > at org.apache.maven.wagon.AbstractWagon.getTransfer( > AbstractWagon.java:182) > at org.apache.maven.wagon.StreamWagon.get(StreamWagon.java:80) > at > org.apache.maven.archiva.proxy.DefaultProxyRequestHandler.getFileFromRepository( > DefaultProxyRequestHandler.java:541) > at org.apache.maven.archiva.proxy.DefaultProxyRequestHandler.get( > DefaultProxyRequestHandler.java:393) > at > org.apache.maven.archiva.proxy.DefaultProxyRequestHandler.getArtifactFromRepository( > DefaultProxyRequestHandler.java:260) > at org.apache.maven.archiva.proxy.DefaultProxyRequestHandler.get( > DefaultProxyRequestHandler.java:196) > at org.apache.maven.archiva.proxy.DefaultProxyRequestHandler.get( > DefaultProxyRequestHandler.java :116) > at > org.apache.maven.archiva.web.repository.ProxiedDavServer.fetchContentFromProxies > (ProxiedDavServer.java:156) > at org.apache.maven.archiva.web.repository.ProxiedDavServer.process( > ProxiedDavServer.java :144) > at > org.codehaus.plexus.webdav.servlet.multiplexed.MultiplexedWebDavServlet.service > (MultiplexedWebDavServlet.java:111) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > ApplicationFilterChain.java:252) > at org.apache.catalina.core.ApplicationFilterChain.doFilter( > ApplicationFilterChain.java:173) > at com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter( > FilterDispatcher.java :189) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > ApplicationFilterChain.java:202) > at org.apache.catalina.core.ApplicationFilterChain.doFilter( > ApplicationFilterChain.java:173) > at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter( > PageFilter.java:39) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > ApplicationFilterChain.java:202) > at org.apache.catalina.core.ApplicationFilterChain.doFilter ( > ApplicationFilterChain.java:173) > at com.opensymphony.webwork.dispatcher.ActionContextCleanUp.doFilter > (ActionContextCleanUp.java:88) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > ApplicationFilterChain.java :202) > at org.apache.catalina.core.ApplicationFilterChain.doFilter( > ApplicationFilterChain.java:173) > at org.apache.catalina.core.StandardWrapperValve.invoke( > StandardWrapperValve.java:213) > at org.apache.catalina.core.StandardContextValve.invoke ( > StandardContextValve.java:178) > at org.apache.catalina.core.StandardHostValve.invoke( > StandardHostValve.java:126) > at org.apache.catalina.valves.ErrorReportValve.invoke( > ErrorReportValve.java:105) > at org.apache.catalina.core.StandardEngineValve.invoke ( > StandardEngineValve.java:107) > at org.apache.catalina.connector.CoyoteAdapter.service( > CoyoteAdapter.java:148) > at org.apache.coyote.http11.Http11AprProcessor.process( > Http11AprProcessor.java:833) > at > org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process( > Http11AprProtocol.java:639) > at org.apache.tomcat.util.net.AprEndpoint$Worker.run( > AprEndpoint.java:1285) > at java.lang.Thread.run(Unknown Source) >