Index: src/java/org/apache/commons/collections/DefaultMapEntry.java
===================================================================
RCS file: /home/cvspublic/jakarta-commons/collections/src/java/org/apache/commons/collections/DefaultMapEntry.java,v
retrieving revision 1.1
diff -u -r1.1 DefaultMapEntry.java
--- src/java/org/apache/commons/collections/DefaultMapEntry.java	6 May 2001 11:04:25 -0000	1.1
+++ src/java/org/apache/commons/collections/DefaultMapEntry.java	10 Feb 2002 05:17:06 -0000
@@ -1,9 +1,61 @@
 /*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
+ * $Header: $
+ * $Revision: $
+ * $Date: $
  *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
+ * ====================================================================
+ *
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 2001-2002 The Apache Software Foundation.  All rights
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ *    if any, must include the following acknowledgment:
+ *       "This product includes software developed by the
+ *        Apache Software Foundation (http://www.apache.org/)."
+ *    Alternately, this acknowledgment may appear in the software itself,
+ *    if and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "Apache" and "Apache Software Foundation" and
+ *    "Apache Commons" must not be used to endorse or promote products
+ *    derived from this software without prior written permission. For
+ *    written permission, please contact apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache",
+ *    "Apache Commons", nor may "Apache" appear in their name, without
+ *    prior written permission of the Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation.  For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
  */
 package org.apache.commons.collections;
 
@@ -11,6 +63,7 @@
 
 /** A default implementation of {@link Map.Entry Map.Entry}
   *
+  * @author <a href="mailto:michael@iammichael.org">Michael Smith</a>
   * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
   */
   
@@ -19,9 +72,6 @@
     private Object              key;
     private Object              value;
 
-    protected static final int HASH_CODE_SEED = 123456789;
-    
-    
     public DefaultMapEntry() {
     }
 
@@ -30,39 +80,30 @@
         this.value = value;
     }
 
+    /**
+     *  Implemented per API documentation of {@link Map.Entry#equals(Object)}
+     **/
     public boolean equals(Object o) {
-        if ( ! (o instanceof DefaultMapEntry ) )
+        if( o == null ) return false;
+        if( o == this ) return true;
+
+        if ( ! (o instanceof Map.Entry ) )
             return false;
-        DefaultMapEntry that = (DefaultMapEntry) o;
 
-        if ( ( this.key == null && that.key == null )
-            || ( this.key != null && this.key.equals( that.key ) ) )
-        {
-            if ( ( this.value == null && that.value == null )
-                || ( this.value != null && this.value.equals( that.value ) ) )
-            {
-                return true;
-            }
-        }
-        return false;
-    }
+        Map.Entry e2 = (Map.Entry)o;    
 
-    public boolean equals( DefaultMapEntry that ) {
-        if ( ( key == null && that.key == null ) || ( key != null && key.equals( that.key ) ) ) {
-            return ( value == null && value == null ) || ( value != null && value.equals( that.value ) );
-        }
-        return false;
+        return ((getKey() == null ?
+                 e2.getKey() == null : getKey().equals(e2.getKey())) &&
+                (getValue() == null ?
+                 e2.getValue() == null : getValue().equals(e2.getValue())));
     }
-    
+
+    /**
+     *  Implemented per API documentation of {@link Map.Entry#hashCode()}
+     **/
     public int hashCode() {
-        int answer = HASH_CODE_SEED;
-        if ( key != null ) {
-            answer ^= key.hashCode();
-        }
-        if ( value != null ) {
-            answer ^= value.hashCode();
-        }
-        return answer;
+        return ( ( getKey() == null ? 0 : getKey().hashCode() ) ^
+                 ( getValue() == null ? 0 : getValue().hashCode() ) ); 
     }
 
 

