This seems to cause the mailbox-integration-test failures.
"public Iterator<MessageResult> getMessages(...)" may now return a null
value, which wasn't the case before. It should IMO at least an
EmptyIterator instead of a null value.

Regards
Felix


On 03/06/2011 04:31 PM, [email protected] wrote:
> Author: wstrzalka
> Date: Sun Mar  6 15:31:48 2011
> New Revision: 1078490
> 
> URL: http://svn.apache.org/viewvc?rev=1078490&view=rev
> Log:
> Minor refactoring to IMAP-258
> 
> Modified:
>     
> james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MessageRange.java
>     
> james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
> 
> Modified: 
> james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MessageRange.java
> URL: 
> http://svn.apache.org/viewvc/james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MessageRange.java?rev=1078490&r1=1078489&r2=1078490&view=diff
> ==============================================================================
> --- 
> james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MessageRange.java
>  (original)
> +++ 
> james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MessageRange.java
>  Sun Mar  6 15:31:48 2011
> @@ -189,4 +189,11 @@ public class MessageRange {
>      public String toString() {
>          return "TYPE: " + type + " UID: " + uidFrom + ":" + uidTo + 
> (batchSize > 0 ? " BATCH: "+batchSize : "");
>      }
> +
> +     public MessageRange getUnlimitedRange() {
> +             if(this.batchSize == UNLIMITED_BATCH)
> +                     return this;
> +             else
> +                     return new MessageRange(type, uidFrom, uidTo, 
> UNLIMITED_BATCH);
> +     }
>  }
> 
> Modified: 
> james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
> URL: 
> http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java?rev=1078490&r1=1078489&r2=1078490&view=diff
> ==============================================================================
> --- 
> james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
>  (original)
> +++ 
> james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
>  Sun Mar  6 15:31:48 2011
> @@ -479,18 +479,30 @@ public abstract class StoreMessageManage
>       */
>      public Iterator<MessageResult> getMessages(final MessageRange set, 
> FetchGroup fetchGroup,
>              MailboxSession mailboxSession) throws MailboxException {
> -        
> -     final List<MailboxMembership<Id>> rows = new 
> ArrayList<MailboxMembership<Id>>();
> -     
> -     
> mapperFactory.getMessageMapper(mailboxSession).findInMailbox(getMailboxEntity(),
>  set, new MailboxMembershipCallback<Id>() {
> -                     public void 
> onMailboxMembers(List<MailboxMembership<Id>> batchRows) throws 
> MailboxException {
> -                             rows.addAll(batchRows);
> +
> +        class InterceptingCallback implements MessageCallback {
> +             Iterator<MessageResult> iterator;
> +             
> +                     public void onMessages(Iterator<MessageResult> it) 
> throws MailboxException {
> +                             iterator = it;                          
>                       }
> -             });
> +                     
> +                     public Iterator<MessageResult> getIterator() {
> +                             return iterator;
> +                     }
> +        } 
> +     
> +        // if we are intercepting callback - let's make it effective
> +        MessageRange nonBatchedSet = set.getUnlimitedRange();
> +        
> +        // intercepting callback 
> +        InterceptingCallback callback = new InterceptingCallback();
> +     this.getMessages(nonBatchedSet, fetchGroup, mailboxSession, callback);
>       
> -        return new ResultIterator<Id>(rows.iterator(), fetchGroup);
> +        return callback.getIterator();
>      }
>  
> +   
>      /*
>       * (non-Javadoc)
>       * @see 
> org.apache.james.mailbox.MessageManager#getMessages(org.apache.james.mailbox.MessageRange,
>  org.apache.james.mailbox.MessageResult.FetchGroup, 
> org.apache.james.mailbox.MailboxSession, int, 
> org.apache.james.mailbox.MessageManager.MessageCallback)
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 


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

Reply via email to