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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to