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]