[ 
https://issues.apache.org/jira/browse/IMAP-8?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Burrell Donkin updated IMAP-8:
-------------------------------------

    Fix Version/s:     (was: 0.2)
                   0.1

> Let MailboxManager return Lists that could be backed lazyly
> -----------------------------------------------------------
>
>                 Key: IMAP-8
>                 URL: https://issues.apache.org/jira/browse/IMAP-8
>             Project: JAMES Imap
>          Issue Type: Improvement
>          Components: Mailbox
>    Affects Versions: 0.1
>            Reporter: Joachim Draeger
>            Priority: Minor
>             Fix For: 0.1
>
>
> 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.
-
You can reply to this email to add a comment to the issue online.


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

Reply via email to