Let MailboxManager return Lists that could be backed lazyly -----------------------------------------------------------
Key: JAMES-734 URL: http://issues.apache.org/jira/browse/JAMES-734 Project: James Issue Type: Improvement Components: IMAPServer Affects Versions: Trunk Reporter: Joachim Draeger Priority: Minor At the moment MailboxManager uses arrays which is IMO the most clearest and easiest way. I still follow the idea of requesting exactly the needed data to reduce the count of queries to e.g. a RDBMS. But for example requesting a bunch of headers from a mailbox that could have 10000 msgs by a modem-user could cost a lot of memory for a longer period. Future implementations could decide to back the list lazily (at least the Iterator) by chunks of 500 msgs. So using the Iterator would be best practice. Why not use just Iterator? - convenient use of the list methods (toArray, size(), get(i)) - possible optimization like "select count(*)" for size() - today's implementation could just use an ArrayList - future implementations will not be too complicated by using wrappers and AbstractList/AbstractSequentialList Well, one pitfall are intermediate deletions of results. When the size() has been requested by the client, the list could contain nulls. To fulfill the List contract the Iterator has to do the same. Saying: "If you didn't call size() before, you don't need to care about null results" would be bad. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]