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]>