Return-Path: Delivered-To: apmail-maven-commits-archive@www.apache.org Received: (qmail 84222 invoked from network); 4 Feb 2010 12:12:40 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 4 Feb 2010 12:12:40 -0000 Received: (qmail 89076 invoked by uid 500); 4 Feb 2010 12:12:40 -0000 Delivered-To: apmail-maven-commits-archive@maven.apache.org Received: (qmail 88992 invoked by uid 500); 4 Feb 2010 12:12:39 -0000 Mailing-List: contact commits-help@maven.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@maven.apache.org Delivered-To: mailing list commits@maven.apache.org Received: (qmail 88983 invoked by uid 99); 4 Feb 2010 12:12:39 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 04 Feb 2010 12:12:39 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 04 Feb 2010 12:12:36 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 4A21423888E8; Thu, 4 Feb 2010 12:12:15 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r906463 - in /maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven: ./ execution/ plugin/ project/artifact/ Date: Thu, 04 Feb 2010 12:12:15 -0000 To: commits@maven.apache.org From: krosenvold@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100204121215.4A21423888E8@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: krosenvold Date: Thu Feb 4 12:12:14 2010 New Revision: 906463 URL: http://svn.apache.org/viewvc?rev=906463&view=rev Log: Changed to threadsafe Map/Set structures The changed classes have confirmed unsafe concurrent access using failfast-collections Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultArtifactFilterManager.java maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/SessionRepositoryCache.java maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginRealmCache.java maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/DefaultMavenMetadataCache.java Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultArtifactFilterManager.java URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultArtifactFilterManager.java?rev=906463&r1=906462&r2=906463&view=diff ============================================================================== --- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultArtifactFilterManager.java (original) +++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultArtifactFilterManager.java Thu Feb 4 12:12:14 2010 @@ -24,6 +24,7 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.Set; +import java.util.concurrent.CopyOnWriteArraySet; import org.apache.maven.artifact.resolver.filter.ArtifactFilter; import org.apache.maven.artifact.resolver.filter.ExclusionSetFilter; @@ -49,7 +50,7 @@ static { - Set artifacts = new HashSet(); + List artifacts = new ArrayList(); artifacts.add( "classworlds" ); artifacts.add( "plexus-classworlds" ); @@ -86,7 +87,7 @@ * wagon from their plugin realm. */ - DEFAULT_EXCLUSIONS = artifacts; + DEFAULT_EXCLUSIONS = new CopyOnWriteArraySet( artifacts); } protected Set excludedArtifacts = new HashSet( DEFAULT_EXCLUSIONS ); Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java?rev=906463&r1=906462&r2=906463&view=diff ============================================================================== --- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java (original) +++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java Thu Feb 4 12:12:14 2010 @@ -23,11 +23,11 @@ import java.util.Arrays; import java.util.Collection; import java.util.Date; -import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Properties; +import java.util.concurrent.ConcurrentHashMap; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.repository.RepositoryCache; @@ -69,6 +69,9 @@ private Collection blackListedProjects; + private final Map>> pluginContextsByProjectAndPluginKey = + new ConcurrentHashMap>> (); + @Deprecated public MavenSession( PlexusContainer container, MavenExecutionRequest request, MavenExecutionResult result, MavenProject project ) { @@ -284,8 +287,7 @@ return result; } - private Map>> pluginContextsByProjectAndPluginKey = new HashMap>> (); - + // Backward compat public Map getPluginContext( PluginDescriptor plugin, MavenProject project ) { @@ -295,7 +297,7 @@ if ( pluginContextsByKey == null ) { - pluginContextsByKey = new HashMap>(); + pluginContextsByKey = new ConcurrentHashMap>(); pluginContextsByProjectAndPluginKey.put( projectKey, pluginContextsByKey ); } @@ -306,7 +308,7 @@ if ( pluginContext == null ) { - pluginContext = new HashMap(); + pluginContext = new ConcurrentHashMap(); pluginContextsByKey.put( pluginKey, pluginContext ); } Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/SessionRepositoryCache.java URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/SessionRepositoryCache.java?rev=906463&r1=906462&r2=906463&view=diff ============================================================================== --- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/SessionRepositoryCache.java (original) +++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/SessionRepositoryCache.java Thu Feb 4 12:12:14 2010 @@ -19,8 +19,8 @@ * under the License. */ -import java.util.HashMap; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import org.apache.maven.artifact.repository.RepositoryCache; import org.apache.maven.artifact.repository.RepositoryRequest; @@ -34,7 +34,7 @@ implements RepositoryCache { - private Map cache = new HashMap( 256 ); + private Map cache = new ConcurrentHashMap( 256 ); public Object get( RepositoryRequest request, Object key ) { Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginRealmCache.java URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginRealmCache.java?rev=906463&r1=906462&r2=906463&view=diff ============================================================================== --- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginRealmCache.java (original) +++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginRealmCache.java Thu Feb 4 12:12:14 2010 @@ -21,10 +21,10 @@ import java.util.ArrayList; import java.util.Collections; -import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.repository.ArtifactRepository; @@ -105,7 +105,7 @@ } } - protected final Map cache = new HashMap(); + protected final Map cache = new ConcurrentHashMap(); public CacheRecord get( Plugin plugin, ClassLoader parentRealm, List parentImports, ArtifactFilter dependencyFilter, ArtifactRepository localRepository, Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/DefaultMavenMetadataCache.java URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/DefaultMavenMetadataCache.java?rev=906463&r1=906462&r2=906463&view=diff ============================================================================== --- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/DefaultMavenMetadataCache.java (original) +++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/DefaultMavenMetadataCache.java Thu Feb 4 12:12:14 2010 @@ -18,13 +18,13 @@ import java.io.File; import java.util.ArrayList; -import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.ArtifactUtils; @@ -38,6 +38,8 @@ implements MavenMetadataCache { + protected final Map cache = new ConcurrentHashMap(); + public static class CacheKey { private final Artifact artifact; @@ -286,7 +288,6 @@ } } - protected Map cache = new HashMap(); public ResolutionGroup get( Artifact artifact, boolean resolveManagedVersions, ArtifactRepository localRepository, List remoteRepositories )