Author: rdonkin Date: Tue Jul 15 12:04:51 2008 New Revision: 677009 URL: http://svn.apache.org/viewvc?rev=677009&view=rev Log: Sort LIST results. This should ensure consistency.
Modified: james/server/trunk/mailbox-library/src/main/java/org/apache/james/mailboxmanager/impl/ListResultImpl.java james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java Modified: james/server/trunk/mailbox-library/src/main/java/org/apache/james/mailboxmanager/impl/ListResultImpl.java URL: http://svn.apache.org/viewvc/james/server/trunk/mailbox-library/src/main/java/org/apache/james/mailboxmanager/impl/ListResultImpl.java?rev=677009&r1=677008&r2=677009&view=diff ============================================================================== --- james/server/trunk/mailbox-library/src/main/java/org/apache/james/mailboxmanager/impl/ListResultImpl.java (original) +++ james/server/trunk/mailbox-library/src/main/java/org/apache/james/mailboxmanager/impl/ListResultImpl.java Tue Jul 15 12:04:51 2008 @@ -21,7 +21,7 @@ import org.apache.james.mailboxmanager.ListResult; -public class ListResultImpl implements ListResult { +public class ListResultImpl implements ListResult, Comparable { public static ListResult createNoSelect(String name, String delimiter) { return new ListResultImpl(name, delimiter, false, SELECTABILITY_FLAG_NOSELECT); @@ -77,4 +77,53 @@ public String toString() { return "ListResult: " + name; } + + /** + * @see java.lang.Object#hashCode() + */ + public int hashCode() { + final int PRIME = 31; + int result = 1; + result = PRIME * result + ((name == null) ? 0 : name.hashCode()); + return result; + } + + /** + * @see java.lang.Object#equals(java.lang.Object) + */ + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + final ListResultImpl other = (ListResultImpl) obj; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + return true; + } + + public int compareTo(Object o) { + final ListResultImpl other = (ListResultImpl) o; + final String otherName = other.getName(); + final int result; + if ("INBOX".equals(this.name)) { + result = "INBOX".equals(otherName) ? 0 : -1; + } else if ("INBOX".equals(otherName)) { + result = 1; + } else if (this.name == null) { + result = otherName == null ? 0 : 1; + } else if (otherName == null){ + result = -1; + } else { + result = name.compareTo(otherName); + } + return result; + } + + } Modified: james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java URL: http://svn.apache.org/viewvc/james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java?rev=677009&r1=677008&r2=677009&view=diff ============================================================================== --- james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java (original) +++ james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java Tue Jul 15 12:04:51 2008 @@ -20,6 +20,7 @@ package org.apache.james.mailboxmanager.torque; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -244,7 +245,9 @@ } } } - return (ListResult[]) listResults.toArray(ListResult.EMPTY_ARRAY); + final ListResult[] results = (ListResult[]) listResults.toArray(ListResult.EMPTY_ARRAY); + Arrays.sort(results); + return results; } catch (TorqueException e) { throw new MailboxManagerException(e); } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]