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 no...@apache.org on 2010/04/11 15:00:50 UTC

svn commit: r932886 - /james/server/trunk/core-library/src/main/java/org/apache/james/core/MimeMessageInputStreamSource.java

Author: norman
Date: Sun Apr 11 13:00:49 2010
New Revision: 932886

URL: http://svn.apache.org/viewvc?rev=932886&view=rev
Log:
Make sure OutputStreams are also closed on dispose...

Modified:
    james/server/trunk/core-library/src/main/java/org/apache/james/core/MimeMessageInputStreamSource.java

Modified: james/server/trunk/core-library/src/main/java/org/apache/james/core/MimeMessageInputStreamSource.java
URL: http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/core/MimeMessageInputStreamSource.java?rev=932886&r1=932885&r2=932886&view=diff
==============================================================================
--- james/server/trunk/core-library/src/main/java/org/apache/james/core/MimeMessageInputStreamSource.java (original)
+++ james/server/trunk/core-library/src/main/java/org/apache/james/core/MimeMessageInputStreamSource.java Sun Apr 11 13:00:49 2010
@@ -51,6 +51,7 @@ public class MimeMessageInputStreamSourc
     implements Disposable {
 
     private final List<InputStream> streams = new ArrayList<InputStream>();
+    private final List<OutputStream> streamsOut = new ArrayList<OutputStream>();
 
     
     /**
@@ -166,8 +167,10 @@ public class MimeMessageInputStreamSourc
      * @return
      * @throws FileNotFoundException
      */
-    public OutputStream getWritableOutputStream() throws FileNotFoundException {
-        return new FileOutputStream(file);
+    public synchronized OutputStream getWritableOutputStream() throws FileNotFoundException {
+        FileOutputStream out = new FileOutputStream(file);
+        streamsOut.add(out);
+        return out;
     }
     
     /**
@@ -182,6 +185,13 @@ public class MimeMessageInputStreamSourc
                 // ignore on dispose
             }
         }
+        for (int i = 0; i < streamsOut.size(); i++) {
+            try {
+                streamsOut.get(i).close();
+            } catch (IOException e) {
+                // ignore on dispose
+            }
+        }
         try {
             if (file != null && file.exists()) {
                 file.delete();



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