[jira] Created: (IMAP-159) OOM when using JCR when select folder with many recent messages

2010-06-23 Thread Norman Maurer (JIRA)
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

2010-06-23 Thread norman
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

2010-06-23 Thread Norman Maurer (JIRA)
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

2010-06-23 Thread Norman Maurer (JIRA)
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

2010-06-23 Thread Norman Maurer (JIRA)

 [ 
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

2010-06-23 Thread norman
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

2010-06-23 Thread Norman Maurer (JIRA)

 [ 
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

2010-06-23 Thread Norman Maurer (JIRA)

 [ 
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

2010-06-23 Thread Eric Charles

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