[jira] Created: (IMAP-159) OOM when using JCR when select folder with many recent messages
OOM when using JCR when select folder with many recent messages --- Key: IMAP-159 URL: https://issues.apache.org/jira/browse/IMAP-159 Project: JAMES Imap Issue Type: Bug Components: JCR Mailbox Reporter: Norman Maurer Assignee: Norman Maurer Fix For: 0.1 If you use JCR and select a folder with many RECENT messages you will get a OOM soon. This is because it try to handle updating the recent flag on all Messages in one batch (after it it call session.save()). Because of Jackrabbit which handle the whole TransistSpace in Memory this is a bad idea. See https://issues.apache.org/jira/browse/JCR-2051. We should better handle this in small batches.. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
svn commit: r957192 - /james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMessageMapper.java
Author: norman Date: Wed Jun 23 13:38:41 2010 New Revision: 957192 URL: http://svn.apache.org/viewvc?rev=957192view=rev Log: Improve XPATH queries to not use joins all over the place (IMAP-160) Modified: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMessageMapper.java Modified: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMessageMapper.java URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMessageMapper.java?rev=957192r1=957191r2=957192view=diff == --- james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMessageMapper.java (original) +++ james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMessageMapper.java Wed Jun 23 13:38:41 2010 @@ -115,7 +115,7 @@ public class JCRMessageMapper extends Ab try { // we use order by because without it count will always be 0 in jackrabbit -String queryString = / + getMailboxPath(uuid) + //element(*,jamesMailbox:message)[@ + JCRMessage.MAILBOX_UUID_PROPERTY +=' + uuid +'] AND [@ + JCRMessage.SEEN_PROPERTY +='false'] order by @ + JCRMessage.UID_PROPERTY; +String queryString = / + getMailboxPath(uuid) + //element(*,jamesMailbox:message)[@ + JCRMessage.MAILBOX_UUID_PROPERTY +=' + uuid +' and @ + JCRMessage.SEEN_PROPERTY +='false'] order by @ + JCRMessage.UID_PROPERTY; QueryManager manager = getSession().getWorkspace().getQueryManager(); QueryResult result = manager.createQuery(queryString, Query.XPATH).execute(); NodeIterator nodes = result.getNodes(); @@ -190,7 +190,7 @@ public class JCRMessageMapper extends Ab private ListMailboxMembershipString findMessagesInMailboxAfterUID(String uuid, long uid) throws RepositoryException { ListMailboxMembershipString list = new ArrayListMailboxMembershipString(); -String queryString = / + getMailboxPath(uuid) + //element(*,jamesMailbox:message)[@ + JCRMessage.MAILBOX_UUID_PROPERTY + =' + uuid + '] AND [@ + JCRMessage.UID_PROPERTY + = + uid + ] order by @ + JCRMessage.UID_PROPERTY; +String queryString = / + getMailboxPath(uuid) + //element(*,jamesMailbox:message)[@ + JCRMessage.MAILBOX_UUID_PROPERTY + =' + uuid + ' and @ + JCRMessage.UID_PROPERTY + = + uid + ] order by @ + JCRMessage.UID_PROPERTY; QueryManager manager = getSession().getWorkspace().getQueryManager(); QueryResult result = manager.createQuery(queryString, Query.XPATH).execute(); @@ -204,7 +204,7 @@ public class JCRMessageMapper extends Ab private ListMailboxMembershipString findMessagesInMailboxWithUID(String uuid, long uid) throws RepositoryException { ListMailboxMembershipString list = new ArrayListMailboxMembershipString(); -String queryString = / + getMailboxPath(uuid) + //element(*,jamesMailbox:message)[@ + JCRMessage.MAILBOX_UUID_PROPERTY + =' + uuid + '] AND [@ + JCRMessage.UID_PROPERTY + = + uid + ] order by @ + JCRMessage.UID_PROPERTY; +String queryString = / + getMailboxPath(uuid) + //element(*,jamesMailbox:message)[@ + JCRMessage.MAILBOX_UUID_PROPERTY + =' + uuid + ' and @ + JCRMessage.UID_PROPERTY + = + uid + ] order by @ + JCRMessage.UID_PROPERTY; QueryManager manager = getSession().getWorkspace().getQueryManager(); QueryResult result = manager.createQuery(queryString, Query.XPATH).execute(); @@ -218,7 +218,7 @@ public class JCRMessageMapper extends Ab private ListMailboxMembershipString findMessagesInMailboxBetweenUIDs(String uuid, long from, long to) throws RepositoryException { ListMailboxMembershipString list = new ArrayListMailboxMembershipString(); -String queryString = / + getMailboxPath(uuid) + //element(*,jamesMailbox:message)[@ + JCRMessage.MAILBOX_UUID_PROPERTY + =' + uuid + '] AND [@ + JCRMessage.UID_PROPERTY + = + from + ] AND [@ + JCRMessage.UID_PROPERTY + = + to + ] order by @ + JCRMessage.UID_PROPERTY; +String queryString = / + getMailboxPath(uuid) + //element(*,jamesMailbox:message)[@ + JCRMessage.MAILBOX_UUID_PROPERTY + =' + uuid + ' and @ + JCRMessage.UID_PROPERTY + = + from + and @ + JCRMessage.UID_PROPERTY + = + to + ] order by @ + JCRMessage.UID_PROPERTY; QueryManager manager = getSession().getWorkspace().getQueryManager(); QueryResult result = manager.createQuery(queryString, Query.XPATH).execute(); @@ -248,7 +248,7 @@ public class JCRMessageMapper extends Ab private ListMailboxMembershipString findDeletedMessagesInMailboxAfterUID(String uuid, long uid) throws RepositoryException { ListMailboxMembershipString list = new ArrayListMailboxMembershipString(); -String queryString = / + getMailboxPath(uuid) + //element(*,jamesMailbox:message)[@ + JCRMessage.MAILBOX_UUID_PROPERTY + =' + uuid + '] AND
[jira] Created: (IMAP-160) Improve XPATH queries for better performance
Improve XPATH queries for better performance Key: IMAP-160 URL: https://issues.apache.org/jira/browse/IMAP-160 Project: JAMES Imap Issue Type: Improvement Components: JCR Mailbox Reporter: Norman Maurer Assignee: Norman Maurer Fix For: 0.1 The current XPATH queries need to get improved to get better performance -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] Created: (IMAP-161) Only call save on a Message if the recent flag was updated
Only call save on a Message if the recent flag was updated -- Key: IMAP-161 URL: https://issues.apache.org/jira/browse/IMAP-161 Project: JAMES Imap Issue Type: Improvement Components: Mailbox Reporter: Norman Maurer Assignee: Norman Maurer Fix For: 0.1 At the moment we call MessageMapper.save(Message) on every message when we search for recent Messages. We should only do this if the flag was updated -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] Resolved: (IMAP-160) Improve XPATH queries for better performance
[ https://issues.apache.org/jira/browse/IMAP-160?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Norman Maurer resolved IMAP-160. Resolution: Fixed Improve XPATH queries for better performance Key: IMAP-160 URL: https://issues.apache.org/jira/browse/IMAP-160 Project: JAMES Imap Issue Type: Improvement Components: JCR Mailbox Reporter: Norman Maurer Assignee: Norman Maurer Fix For: 0.1 The current XPATH queries need to get improved to get better performance -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
svn commit: r957200 - /james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMessageMapper.java
Author: norman Date: Wed Jun 23 13:44:34 2010 New Revision: 957200 URL: http://svn.apache.org/viewvc?rev=957200view=rev Log: cleanup.. Modified: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMessageMapper.java Modified: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMessageMapper.java URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMessageMapper.java?rev=957200r1=957199r2=957200view=diff == --- james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMessageMapper.java (original) +++ james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMessageMapper.java Wed Jun 23 13:44:34 2010 @@ -394,9 +394,7 @@ public class JCRMessageMapper extends Ab if (limit 0) { query.setLimit(limit); } -System.out.println(execute query + queryString); QueryResult result = query.execute(); -System.out.println(complete query + queryString); NodeIterator iterator = result.getNodes(); while(iterator.hasNext()) { - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] Resolved: (IMAP-142) StoreMailboxManager.deleteMailbox(..) should delete the mailbox and all mapped MailboxMemberships
[ https://issues.apache.org/jira/browse/IMAP-142?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Norman Maurer resolved IMAP-142. Assignee: Norman Maurer Resolution: Duplicate Duplicate of IMAP-158 StoreMailboxManager.deleteMailbox(..) should delete the mailbox and all mapped MailboxMemberships -- Key: IMAP-142 URL: https://issues.apache.org/jira/browse/IMAP-142 Project: JAMES Imap Issue Type: Bug Components: Mailbox Reporter: Norman Maurer Assignee: Norman Maurer Fix For: 0.1 At the moment StoreMailboxManager.deleteMailbox(..) only delete the mailbox but does not delete all the mapped MailboxMemberships. This is not the correct behavoir.. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] Resolved: (IMAP-161) Only call save on a Message if the recent flag was updated
[ https://issues.apache.org/jira/browse/IMAP-161?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Norman Maurer resolved IMAP-161. Resolution: Fixed Only call save on a Message if the recent flag was updated -- Key: IMAP-161 URL: https://issues.apache.org/jira/browse/IMAP-161 Project: JAMES Imap Issue Type: Improvement Components: Mailbox Reporter: Norman Maurer Assignee: Norman Maurer Fix For: 0.1 At the moment we call MessageMapper.save(Message) on every message when we search for recent Messages. We should only do this if the flag was updated -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
Re: OpenJPA usage at Apache James
Hi Pinaki, We use the maven downloaded jar release 422266:935683 from 22-Apr-2010, so we don't have the patch for the MappedSuperClass. I didn't find a recent 2.0.0-SNAPSHOT on http://people.apache.org/maven-snapshot-repository/ nor on https://repository.apache.org/index.html. Will try with 2.1.0-SNAPSHOT. The entites can be found here: [1] AbstractJPAMessage http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/AbstractJPAMessage.java?view=markup [2] JPAHeader http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAHeader.java?view=markup [3] JPAProperty http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAProperty.java?view=markup [4] JPAMessage http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMessage.java?view=markup [5] JPAStreamingMessage http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/openjpa/JPAStreamingMessage.java?view=markup Tks, Eric On 06/23/2010 07:04 PM, Pinaki Poddar wrote: Hi, The mappedBy mapping on abstract class should work and the relations need not be redefined in the concrete subclass. But a critical bug on MappedSuperclass had been found recently -- which *may be* impacting the mapping. 1. Which OpenJPA revision being used? $ java -jar /path/to/openjpa.jar shows the revision number. 2. If the used revision is prior to 952893 (dated June 8,2010), is it possible to switch to a post-952893 version and see if that resolves the issue? 3. Can you please post the relevant entity classes (JPAMesaage etc.) for further analysis? - Pinaki - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org