You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by rd...@apache.org on 2008/09/16 23:36:07 UTC

svn commit: r696072 - in /james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message: AbstractBody.java Body.java Entity.java Multipart.java TempFileBinaryBody.java TempFileTextBody.java

Author: rdonkin
Date: Tue Sep 16 14:36:06 2008
New Revision: 696072

URL: http://svn.apache.org/viewvc?rev=696072&view=rev
Log:
MIME4J-72 https://issues.apache.org/jira/browse/MIME4J-72 Contributed by Markus Wiederkehr.

Modified:
    james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/AbstractBody.java
    james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/Body.java
    james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/Entity.java
    james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/Multipart.java
    james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/TempFileBinaryBody.java
    james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/TempFileTextBody.java

Modified: james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/AbstractBody.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/AbstractBody.java?rev=696072&r1=696071&r2=696072&view=diff
==============================================================================
--- james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/AbstractBody.java (original)
+++ james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/AbstractBody.java Tue Sep 16 14:36:06 2008
@@ -44,4 +44,14 @@
         this.parent = parent;
     }
 
+    /**
+     * Subclasses should override this method if they have allocated resources that need to be
+     * freed explicitly (e.g. cannot be simply reclaimed by the garbage collector). The default
+     * implementation of this method does nothing.
+     * 
+     * @see org.apache.james.mime4j.message.Disposable#dispose()
+     */
+    public void dispose() {
+    }
+
 }

Modified: james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/Body.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/Body.java?rev=696072&r1=696071&r2=696072&view=diff
==============================================================================
--- james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/Body.java (original)
+++ james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/Body.java Tue Sep 16 14:36:06 2008
@@ -30,7 +30,7 @@
  * 
  * @version $Id: Body.java,v 1.4 2004/10/04 15:36:43 ntherning Exp $
  */
-public interface Body {
+public interface Body extends Disposable {
 
     /**
      * Gets the parent of this body.

Modified: james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/Entity.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/Entity.java?rev=696072&r1=696071&r2=696072&view=diff
==============================================================================
--- james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/Entity.java (original)
+++ james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/Entity.java Tue Sep 16 14:36:06 2008
@@ -36,7 +36,7 @@
  * 
  * @version $Id: Entity.java,v 1.3 2004/10/02 12:41:11 ntherning Exp $
  */
-public abstract class Entity {
+public abstract class Entity implements Disposable {
     private Header header = null;
     private Body body = null;
     private Entity parent = null;
@@ -193,4 +193,15 @@
         // for the wrapping stream writer.
         if (encOut != out) encOut.close();
     }
+
+    /**
+     * Disposes the body of this entity. Note that the dispose call does not get
+     * forwarded to the parent entity of this Entity.
+     * 
+     * @see org.apache.james.mime4j.message.Disposable#dispose()
+     */
+    public void dispose() {
+        if (body != null)
+            body.dispose();
+    }
 }

Modified: james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/Multipart.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/Multipart.java?rev=696072&r1=696071&r2=696072&view=diff
==============================================================================
--- james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/Multipart.java (original)
+++ james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/Multipart.java Tue Sep 16 14:36:06 2008
@@ -221,4 +221,16 @@
         writer.write(epilogue);
         writer.flush();
     }
+
+    /**
+     * Disposes the BodyParts of this Multipart. Note that the dispose call does
+     * not get forwarded to the parent entity of this Multipart.
+     * 
+     * @see org.apache.james.mime4j.message.Disposable#dispose()
+     */
+    public void dispose() {
+        for (Iterator it = bodyParts.iterator(); it.hasNext();) {
+            ((BodyPart) it.next()).dispose();
+        }
+    }
 }

Modified: james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/TempFileBinaryBody.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/TempFileBinaryBody.java?rev=696072&r1=696071&r2=696072&view=diff
==============================================================================
--- james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/TempFileBinaryBody.java (original)
+++ james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/TempFileBinaryBody.java Tue Sep 16 14:36:06 2008
@@ -84,4 +84,13 @@
         final InputStream inputStream = getInputStream();
         CodecUtil.copy(inputStream,out);
     }
+
+    /**
+     * Deletes the temporary file that stores the content of this binary body.
+     * 
+     * @see org.apache.james.mime4j.message.Disposable#dispose()
+     */
+    public void dispose() {
+        tempFile.delete();
+    }
 }

Modified: james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/TempFileTextBody.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/TempFileTextBody.java?rev=696072&r1=696071&r2=696072&view=diff
==============================================================================
--- james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/TempFileTextBody.java (original)
+++ james/mime4j/trunk/src/main/java/org/apache/james/mime4j/message/TempFileTextBody.java Tue Sep 16 14:36:06 2008
@@ -107,4 +107,13 @@
         final InputStream inputStream = tempFile.getInputStream();
         CodecUtil.copy(inputStream,out);
     }
+
+    /**
+     * Deletes the temporary file that stores the content of this text body.
+     * 
+     * @see org.apache.james.mime4j.message.Disposable#dispose()
+     */
+    public void dispose() {
+        tempFile.delete();
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org