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]