You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by no...@apache.org on 2010/12/16 12:18:11 UTC

svn commit: r1049933 - /james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRCachingUidProvider.java

Author: norman
Date: Thu Dec 16 11:18:10 2010
New Revision: 1049933

URL: http://svn.apache.org/viewvc?rev=1049933&view=rev
Log:
Fix query for last uid and make sure we close the Session

Modified:
    james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRCachingUidProvider.java

Modified: james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRCachingUidProvider.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRCachingUidProvider.java?rev=1049933&r1=1049932&r2=1049933&view=diff
==============================================================================
--- james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRCachingUidProvider.java (original)
+++ james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRCachingUidProvider.java Thu Dec 16 11:18:10 2010
@@ -53,10 +53,11 @@ public class JCRCachingUidProvider exten
      * @see org.apache.james.mailbox.store.CachingUidProvider#getLastUid(org.apache.james.mailbox.MailboxSession, org.apache.james.mailbox.store.mail.model.Mailbox)
      */
     protected long getLastUid(MailboxSession session, Mailbox<String> mailbox) throws MailboxException {
+        Session s = null;
         try {
-            Session s = repos.login(session);
+            s = repos.login(session);
             // we use order by because without it count will always be 0 in jackrabbit
-            String queryString = "/jcr:root/" + ISO9075.encodePath(s.getNodeByIdentifier(mailbox.getMailboxId()).getPath()) + "//element(*,jamesMailbox:message) order by @" + JCRMessage.UID_PROPERTY + " desc";
+            String queryString = "/jcr:root/" + ISO9075.encodePath(s.getNodeByIdentifier(mailbox.getMailboxId()).getPath()) + "//element(*,jamesMailbox:message) order by @" + JCRMessage.UID_PROPERTY + " descending";
             QueryManager manager = s.getWorkspace().getQueryManager();
             Query q = manager.createQuery(queryString, Query.XPATH);
             q.setLimit(1);
@@ -64,11 +65,14 @@ public class JCRCachingUidProvider exten
             NodeIterator nodes = result.getNodes();
             if (nodes.hasNext()) {
                 return nodes.nextNode().getProperty(JCRMessage.UID_PROPERTY).getLong();
-            } else {
-                return 0;
             }
+            return 0;
         } catch (RepositoryException e) {
             throw new MailboxException("Unable to count unseen messages in mailbox " + mailbox, e);
+        } finally {
+            if (s != null) {
+                repos.logout(session);
+            }
         }
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org