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

Reply via email to