serge       01/12/07 15:29:57

  Modified:    src/java/org/apache/james/mailrepository
                        JDBCSpoolRepository.java
  Log:
  Set a cap of 1000 messages when retrieving (to memory) the list of messages to 
process.  This will avoid loading way too much into memory when there are tens or 
hundreds of thousands of messages.
  
  Revision  Changes    Path
  1.9       +5 -1      
jakarta-james/src/java/org/apache/james/mailrepository/JDBCSpoolRepository.java
  
  Index: JDBCSpoolRepository.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-james/src/java/org/apache/james/mailrepository/JDBCSpoolRepository.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- JDBCSpoolRepository.java  2001/12/07 21:51:59     1.8
  +++ JDBCSpoolRepository.java  2001/12/07 23:29:57     1.9
  @@ -190,7 +190,11 @@
                       
conn.prepareStatement(sqlQueries.getSqlString("listMessagesSQL", true));
                   listMessages.setString(1, repositoryName);
                   rsListMessages = listMessages.executeQuery();
  -                while (rsListMessages.next()) {
  +                //Continue to have it loop through the list of messages until we hit
  +                //  a possible message, or we retrieve 1000 messages.  This 1000 
cap is to
  +                //  avoid loading thousands or hundreds of thousands of messages 
when the
  +                //  spool is enourmous.
  +                while (rsListMessages.next() && pendingMessages.size() < 1000) {
                       String key = rsListMessages.getString(1);
                       String state = rsListMessages.getString(2);
                       long lastUpdated = rsListMessages.getTimestamp(3).getTime();
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to