You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by jd...@apache.org on 2006/09/01 15:30:14 UTC

svn commit: r439314 - /maven/archiva/trunk/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/record/StandardArtifactIndexRecord.java

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 );