Author: jdcasey
Date: Fri Sep  1 06:30:13 2006
New Revision: 439314

URL: http://svn.apache.org/viewvc?rev=439314&view=rev
Log:
Sorting dependencies before comparison or hashCode calculation to side-step a 
bug that was fixed in maven 2.0.5 dealing with the sorting of dependencies as 
they are declared in the POM. Sorting will be restricted to temp variables in 
those methods to avoid changing behavior.

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

Modified: 
maven/archiva/trunk/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/record/StandardArtifactIndexRecord.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/record/StandardArtifactIndexRecord.java?rev=439314&r1=439313&r2=439314&view=diff
==============================================================================
--- 
maven/archiva/trunk/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/record/StandardArtifactIndexRecord.java
 (original)
+++ 
maven/archiva/trunk/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/record/StandardArtifactIndexRecord.java
 Fri Sep  1 06:30:13 2006
@@ -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 @@
         {
             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 @@
         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 );


Reply via email to