Author: mwiederkehr
Date: Fri Jan 23 08:43:06 2009
New Revision: 737075

URL: http://svn.apache.org/viewvc?rev=737075&view=rev
Log:
MIME4J-107: hashCode() and equals() treat the local-part of an address as 
case-sensitive (thanks Stefano).

Modified:
    
james/mime4j/trunk/src/main/java/org/apache/james/mime4j/field/address/Mailbox.java

Modified: 
james/mime4j/trunk/src/main/java/org/apache/james/mime4j/field/address/Mailbox.java
URL: 
http://svn.apache.org/viewvc/james/mime4j/trunk/src/main/java/org/apache/james/mime4j/field/address/Mailbox.java?rev=737075&r1=737074&r2=737075&view=diff
==============================================================================
--- 
james/mime4j/trunk/src/main/java/org/apache/james/mime4j/field/address/Mailbox.java
 (original)
+++ 
james/mime4j/trunk/src/main/java/org/apache/james/mime4j/field/address/Mailbox.java
 Fri Jan 23 08:43:06 2009
@@ -195,6 +195,20 @@
         return getCanonicalizedAddress().hashCode();
     }
 
+    /**
+     * Indicates whether some other object is "equal to" this mailbox.
+     * <p>
+     * An object is considered to be equal to this mailbox if it is an instance
+     * of class <code>Mailbox</code> that holds the same address as this one.
+     * The domain is considered to be case-insensitive but the local-part is 
not
+     * (because of RFC 5321: <cite>the local-part of a mailbox MUST BE treated
+     * as case sensitive</cite>).
+     * 
+     * @param obj
+     *            the object to test for equality.
+     * @return <code>true</code> if the specified object is a
+     *         <code>Mailbox</code> that holds the same address as this one.
+     */
     @Override
     public boolean equals(Object obj) {
         if (obj == this)
@@ -213,7 +227,11 @@
     }
 
     private Object getCanonicalizedAddress() {
-        return getAddress().toLowerCase(Locale.US);
+        if (domain == null) {
+            return localPart;
+        } else {
+            return localPart + '@' + domain.toLowerCase(Locale.US);
+        }
     }
 
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to