You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ga...@apache.org on 2012/10/09 23:29:18 UTC

svn commit: r1396337 - /geronimo/server/branches/3.0/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/Artifact.java

Author: gawor
Date: Tue Oct  9 21:29:18 2012
New Revision: 1396337

URL: http://svn.apache.org/viewvc?rev=1396337&view=rev
Log:
minor optimization: cache hashCode value for Artifact object

Modified:
    geronimo/server/branches/3.0/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/Artifact.java

Modified: geronimo/server/branches/3.0/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/Artifact.java
URL: http://svn.apache.org/viewvc/geronimo/server/branches/3.0/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/Artifact.java?rev=1396337&r1=1396336&r2=1396337&view=diff
==============================================================================
--- geronimo/server/branches/3.0/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/Artifact.java (original)
+++ geronimo/server/branches/3.0/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/Artifact.java Tue Oct  9 21:29:18 2012
@@ -30,6 +30,8 @@ public class Artifact implements Compara
     private final String artifactId;
     private final Version version;
     private final String type;
+    
+    private transient int hashCode;
 
     public Artifact(String groupId, String artifactId, String version, String type) {
         this(groupId, artifactId, version == null ? null : new Version(version), type, true);
@@ -139,12 +141,15 @@ public class Artifact implements Compara
     }
 
     public int hashCode() {
-        int result;
-        result = (groupId != null ? groupId.hashCode() : 0);
-        result = 29 * result + (artifactId != null? artifactId.hashCode() : 0);
-        result = 29 * result + (version != null ? version.hashCode() : 0);
-        result = 29 * result + (type != null ? type.hashCode() : 0);
-        return result;
+        if (hashCode == 0) {
+            int result;
+            result = (groupId != null ? groupId.hashCode() : 0);
+            result = 29 * result + (artifactId != null? artifactId.hashCode() : 0);
+            result = 29 * result + (version != null ? version.hashCode() : 0);
+            result = 29 * result + (type != null ? type.hashCode() : 0);
+            hashCode = result;
+        }
+        return hashCode;
     }
 
     public String toString() {