Hello guys

I've got problem with my custom implementation of org.apache.james.mailbox.store.mail.MessageMapper.findInMailbox(). I'd like to ask you if I understand API correctly here and how should I implement it.

From Thunderbird I got request

   452 UID fetch 16,17:18,20:41,43:45,47,49 (UID RFC822.SIZE BODY.PEEK[])

which is mapped to calls on MessageMapper.findInMailbox()

   findInMailbox: TYPE: RANGE UID: 16:18, Full
   *findInMailbox: TYPE: FROM UID: 19:-1, Full
   findInMailbox: TYPE: RANGE UID: 20:41, Full
   *findInMailbox: TYPE: FROM UID: 42:-1, Full
   findInMailbox: TYPE: RANGE UID: 43:45, Full
   *findInMailbox: TYPE: FROM UID: 46:-1, Full
   findInMailbox: TYPE: ONE UID: 47:47, Full
   *findInMailbox: TYPE: ONE UID: 48:48, Full
   findInMailbox: TYPE: ONE UID: 49:49, Full


what I don't fully understand is why there are those marked(*) calls with -1 as upper bound and also 48:48 despite the fact that there were not requested in fetch request? Does -1 here mean infinity or something else ?

Those marked calls cause me a problem in my implementation. What can I do about it ? Can I return an empty Iterator from MessageMapper.findInMailbox() in such situation when upper bound is -1 ? Is this the only situation when upper bound is -1 ? If not how should I implement it in order to avoid unnecessary calls to database system ?

Peter







Reply via email to