Author: norman
Date: Mon Dec  6 17:49:45 2010
New Revision: 1042746

URL: http://svn.apache.org/viewvc?rev=1042746&view=rev
Log:
Remove unneeded permistic locking from query. See MAILBOX-18

Modified:
    
james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPACachingUidProvider.java
    
james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/AbstractJPAMailboxMembership.java

Modified: 
james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPACachingUidProvider.java
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPACachingUidProvider.java?rev=1042746&r1=1042745&r2=1042746&view=diff
==============================================================================
--- 
james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPACachingUidProvider.java
 (original)
+++ 
james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPACachingUidProvider.java
 Mon Dec  6 17:49:45 2010
@@ -20,7 +20,6 @@ package org.apache.james.mailbox.jpa.mai
 
 import javax.persistence.EntityManager;
 import javax.persistence.EntityManagerFactory;
-import javax.persistence.LockModeType;
 import javax.persistence.NoResultException;
 import javax.persistence.PersistenceException;
 
@@ -28,7 +27,6 @@ import org.apache.james.mailbox.MailboxE
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.store.mail.CachingUidProvider;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
-import org.apache.james.mailbox.store.mail.model.MailboxMembership;
 
 /**
  * Lazy-lookup last used uid via JPA 
@@ -48,14 +46,13 @@ public class JPACachingUidProvider exten
      * (non-Javadoc)
      * @see 
org.apache.james.mailbox.store.CachingUidProvider#getLastUid(org.apache.james.mailbox.MailboxSession,
 org.apache.james.mailbox.store.mail.model.Mailbox)
      */
-    @SuppressWarnings("unchecked")
     protected long getLastUid(MailboxSession session, Mailbox<Long> mailbox) 
throws MailboxException{
         EntityManager em = factory.createEntityManager();
         try {
             em.getTransaction().begin();
-            MailboxMembership<Long> m = (MailboxMembership<Long>) 
em.createNamedQuery("findLastUidInMailbox").setParameter("idParam", 
mailbox.getMailboxId()).setLockMode(LockModeType.PESSIMISTIC_WRITE).getSingleResult();
+            final long uid = (Long) 
em.createNamedQuery("findLastUidInMailbox").setParameter("idParam", 
mailbox.getMailboxId()).getSingleResult();
             em.getTransaction().commit();
-            return m.getUid();
+            return uid;
         } catch (NoResultException e) {
             em.getTransaction().rollback();
             return 0;

Modified: 
james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/AbstractJPAMailboxMembership.java
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/AbstractJPAMailboxMembership.java?rev=1042746&r1=1042745&r2=1042746&view=diff
==============================================================================
--- 
james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/AbstractJPAMailboxMembership.java
 (original)
+++ 
james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/AbstractJPAMailboxMembership.java
 Mon Dec  6 17:49:45 2010
@@ -68,7 +68,7 @@ import org.apache.openjpa.persistence.jd
     @NamedQuery(name="deleteMessages",
             query="DELETE FROM Membership membership WHERE 
membership.mailboxId = :idParam"),
     @NamedQuery(name="findLastUidInMailbox",
-            query="SELECT membership FROM Membership membership WHERE 
membership.mailboxId = :idParam ORDER BY membership.uid ASC")
+            query="SELECT membership.uid FROM Membership membership WHERE 
membership.mailboxId = :idParam ORDER BY membership.uid ASC")
 })
 public abstract class AbstractJPAMailboxMembership extends 
AbstractMailboxMembership<Long> {
 



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

Reply via email to