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