You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2010/01/26 12:40:45 UTC

svn commit: r903183 - /maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultExtensionRealmCache.java

Author: bentmann
Date: Tue Jan 26 11:40:44 2010
New Revision: 903183

URL: http://svn.apache.org/viewvc?rev=903183&view=rev
Log:
o Strengthened cache key

Modified:
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultExtensionRealmCache.java

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultExtensionRealmCache.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultExtensionRealmCache.java?rev=903183&r1=903182&r2=903183&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultExtensionRealmCache.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultExtensionRealmCache.java Tue Jan 26 11:40:44 2010
@@ -44,6 +44,10 @@
 
         private final List<File> files;
 
+        private final List<Long> timestamps;
+
+        private final List<Long> sizes;
+
         private final List<String> ids;
 
         private final int hashCode;
@@ -51,15 +55,21 @@
         public CacheKey( List<? extends Artifact> extensionArtifacts )
         {
             this.files = new ArrayList<File>( extensionArtifacts.size() );
+            this.timestamps = new ArrayList<Long>( extensionArtifacts.size() );
+            this.sizes = new ArrayList<Long>( extensionArtifacts.size() );
             this.ids = new ArrayList<String>( extensionArtifacts.size() );
 
             for ( Artifact artifact : extensionArtifacts )
             {
-                files.add( artifact.getFile() );
+                File file = artifact.getFile();
+                files.add( file );
+                timestamps.add( ( file != null ) ? Long.valueOf( file.lastModified() ) : Long.valueOf( 0 ) );
+                sizes.add( ( file != null ) ? Long.valueOf( file.length() ) : Long.valueOf( 0 ) );
                 ids.add( artifact.getVersion() );
             }
 
-            this.hashCode = files.hashCode() * 31 + ids.hashCode();
+            this.hashCode =
+                31 * files.hashCode() + 31 * ids.hashCode() + 31 * timestamps.hashCode() + 31 * sizes.hashCode();
         }
 
         @Override
@@ -83,7 +93,8 @@
 
             CacheKey other = (CacheKey) o;
 
-            return files.equals( other.files ) && ids.equals( other.ids );
+            return ids.equals( other.ids ) && files.equals( other.files ) && timestamps.equals( other.timestamps )
+                && sizes.equals( other.sizes );
         }
 
     }