Author: bago
Date: Fri May 12 17:35:20 2006
New Revision: 405961

URL: http://svn.apache.org/viewcvs?rev=405961&view=rev
Log:
Added ContainerUtil.dospose(mail) in every place we retrieve mails from 
repository and we know we don't need it anymore. I don't like to use 
finalizers: if we have bugs this change should put them in greater evidence.

Modified:
    james/server/trunk/src/java/org/apache/james/pop3server/POP3Handler.java
    
james/server/trunk/src/java/org/apache/james/transport/JamesSpoolManager.java
    james/server/trunk/src/java/org/apache/james/transport/LinearProcessor.java
    
james/server/trunk/src/java/org/apache/james/transport/mailets/FromRepository.java
    
james/server/trunk/src/java/org/apache/james/transport/matchers/AbstractStorageQuota.java

Modified: 
james/server/trunk/src/java/org/apache/james/pop3server/POP3Handler.java
URL: 
http://svn.apache.org/viewcvs/james/server/trunk/src/java/org/apache/james/pop3server/POP3Handler.java?rev=405961&r1=405960&r2=405961&view=diff
==============================================================================
--- james/server/trunk/src/java/org/apache/james/pop3server/POP3Handler.java 
(original)
+++ james/server/trunk/src/java/org/apache/james/pop3server/POP3Handler.java 
Fri May 12 17:35:20 2006
@@ -17,6 +17,7 @@
 
 package org.apache.james.pop3server;
 
+import org.apache.avalon.framework.container.ContainerUtil;
 import org.apache.james.Constants;
 import org.apache.james.core.AbstractJamesHandler;
 import org.apache.james.core.MailImpl;
@@ -280,6 +281,10 @@
         authenticatedUser = null;
         userInbox = null;
         if (userMailbox != null) {
+            Iterator i = userMailbox.iterator();
+            while (i.hasNext()) {
+                ContainerUtil.dispose(i.next());
+            }
             userMailbox.clear();
             userMailbox = null;
         }

Modified: 
james/server/trunk/src/java/org/apache/james/transport/JamesSpoolManager.java
URL: 
http://svn.apache.org/viewcvs/james/server/trunk/src/java/org/apache/james/transport/JamesSpoolManager.java?rev=405961&r1=405960&r2=405961&view=diff
==============================================================================
--- 
james/server/trunk/src/java/org/apache/james/transport/JamesSpoolManager.java 
(original)
+++ 
james/server/trunk/src/java/org/apache/james/transport/JamesSpoolManager.java 
Fri May 12 17:35:20 2006
@@ -213,6 +213,7 @@
                     // Do not notify: we simply updated the current mail
                     // and we are able to reprocess it now.
                 }
+                ContainerUtil.dispose(mail);
                 mail = null;
             } catch (InterruptedException ie) {
                 getLogger().info("Interrupted JamesSpoolManager: " + 
Thread.currentThread().getName());

Modified: 
james/server/trunk/src/java/org/apache/james/transport/LinearProcessor.java
URL: 
http://svn.apache.org/viewcvs/james/server/trunk/src/java/org/apache/james/transport/LinearProcessor.java?rev=405961&r1=405960&r2=405961&view=diff
==============================================================================
--- james/server/trunk/src/java/org/apache/james/transport/LinearProcessor.java 
(original)
+++ james/server/trunk/src/java/org/apache/james/transport/LinearProcessor.java 
Fri May 12 17:35:20 2006
@@ -21,6 +21,7 @@
 import org.apache.avalon.framework.configuration.Configurable;
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.ConfigurationException;
+import org.apache.avalon.framework.container.ContainerUtil;
 import org.apache.avalon.framework.logger.AbstractLogEnabled;
 import org.apache.avalon.framework.service.ServiceException;
 import org.apache.avalon.framework.service.ServiceManager;
@@ -460,6 +461,7 @@
                 // The original mail will be "stored" by the caller.
                 if (originalMail != mail) {
                     spool.store(mail);
+                    ContainerUtil.dispose(mail);
                 }
                 mail = null;
                 continue;

Modified: 
james/server/trunk/src/java/org/apache/james/transport/mailets/FromRepository.java
URL: 
http://svn.apache.org/viewcvs/james/server/trunk/src/java/org/apache/james/transport/mailets/FromRepository.java?rev=405961&r1=405960&r2=405961&view=diff
==============================================================================
--- 
james/server/trunk/src/java/org/apache/james/transport/mailets/FromRepository.java
 (original)
+++ 
james/server/trunk/src/java/org/apache/james/transport/mailets/FromRepository.java
 Fri May 12 17:35:20 2006
@@ -19,6 +19,7 @@
 
 import org.apache.avalon.cornerstone.services.store.Store;
 import org.apache.avalon.framework.configuration.DefaultConfiguration;
+import org.apache.avalon.framework.container.ContainerUtil;
 import org.apache.avalon.framework.service.ServiceException;
 import org.apache.avalon.framework.service.ServiceManager;
 import org.apache.james.Constants;
@@ -122,6 +123,7 @@
                     mail.setState(processor);
                     getMailetContext().sendMail(mail);
                     if (delete) processed.add(key);
+                    ContainerUtil.dispose(mail);
                 }
             } catch (MessagingException e) {
                 log((new StringBuffer(160).append("Unable to re-spool mail 
").append(key).append(" from ").append(repositoryPath)).toString(), e);

Modified: 
james/server/trunk/src/java/org/apache/james/transport/matchers/AbstractStorageQuota.java
URL: 
http://svn.apache.org/viewcvs/james/server/trunk/src/java/org/apache/james/transport/matchers/AbstractStorageQuota.java?rev=405961&r1=405960&r2=405961&view=diff
==============================================================================
--- 
james/server/trunk/src/java/org/apache/james/transport/matchers/AbstractStorageQuota.java
 (original)
+++ 
james/server/trunk/src/java/org/apache/james/transport/matchers/AbstractStorageQuota.java
 Fri May 12 17:35:20 2006
@@ -17,6 +17,7 @@
 
 package org.apache.james.transport.matchers;
 
+import org.apache.avalon.framework.container.ContainerUtil;
 import org.apache.avalon.framework.service.ServiceException;
 import org.apache.avalon.framework.service.ServiceManager;
 import org.apache.james.Constants;
@@ -102,6 +103,7 @@
                 // It could be deleted while we're looping.
                 log("Exception in getting message size: " + e.getMessage());
             }
+            ContainerUtil.dispose(mc);
         }
         return size;
     }



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

Reply via email to