]> source.dussan.org Git - archiva.git/commitdiff
Sorting dependencies before comparison or hashCode calculation to side-step a bug...
authorJohn Dennis Casey <jdcasey@apache.org>
Fri, 1 Sep 2006 13:30:13 +0000 (13:30 +0000)
committerJohn Dennis Casey <jdcasey@apache.org>
Fri, 1 Sep 2006 13:30:13 +0000 (13:30 +0000)
git-svn-id: https://svn.apache.org/repos/asf/maven/archiva/trunk@439314 13f79535-47bb-0310-9956-ffa450edef68

archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/record/StandardArtifactIndexRecord.java

index 625d43e5f6b388aea8f60955f49c945000250cac..7eb6e77a7a7d306cf712f9ab5cb165e31e931712 100644 (file)
@@ -1,5 +1,7 @@
 package org.apache.maven.archiva.indexer.record;
 
+import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 /*
@@ -174,10 +176,25 @@ public class StandardArtifactIndexRecord
         {
             return false;
         }
-        if ( dependencies != null ? !dependencies.equals( that.dependencies ) : that.dependencies != null )
+        
+        if ( dependencies != null && that.dependencies != null )
+        {
+            List sorted = new ArrayList( dependencies );
+            Collections.sort( sorted );
+            
+            List sortedOther = new ArrayList( that.dependencies );
+            Collections.sort( sortedOther );
+            
+            if ( !sorted.equals( sortedOther ) )
+            {
+                return false;
+            }
+        }
+        else if ( !( dependencies == null && that.dependencies == null ) )
         {
             return false;
         }
+        
         if ( developers != null ? !developers.equals( that.developers ) : that.developers != null )
         {
             return false;
@@ -247,7 +264,15 @@ public class StandardArtifactIndexRecord
         result = 31 * result + ( type != null ? type.hashCode() : 0 );
         result = 31 * result + ( files != null ? files.hashCode() : 0 );
         result = 31 * result + ( developers != null ? developers.hashCode() : 0 );
-        result = 31 * result + ( dependencies != null ? dependencies.hashCode() : 0 );
+        
+        if ( dependencies != null )
+        {
+            List sorted = new ArrayList( dependencies );
+            Collections.sort( sorted );
+            
+            result = 31 * result + sorted.hashCode();
+        }
+        
         result = 31 * result + ( repository != null ? repository.hashCode() : 0 );
         result = 31 * result + ( packaging != null ? packaging.hashCode() : 0 );
         result = 31 * result + ( pluginPrefix != null ? pluginPrefix.hashCode() : 0 );