You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by jm...@apache.org on 2007/12/16 22:33:52 UTC

svn commit: r604715 - /spamassassin/branches/3.2/lib/Mail/SpamAssassin/Message.pm

Author: jm
Date: Sun Dec 16 13:33:52 2007
New Revision: 604715

URL: http://svn.apache.org/viewvc?rev=604715&view=rev
Log:
bug 5557: some temporary files are left not cleaned up on Windows; fix

Modified:
    spamassassin/branches/3.2/lib/Mail/SpamAssassin/Message.pm

Modified: spamassassin/branches/3.2/lib/Mail/SpamAssassin/Message.pm
URL: http://svn.apache.org/viewvc/spamassassin/branches/3.2/lib/Mail/SpamAssassin/Message.pm?rev=604715&r1=604714&r2=604715&view=diff
==============================================================================
--- spamassassin/branches/3.2/lib/Mail/SpamAssassin/Message.pm (original)
+++ spamassassin/branches/3.2/lib/Mail/SpamAssassin/Message.pm Sun Dec 16 13:33:52 2007
@@ -524,12 +524,6 @@
   # Clean ourself up
   $self->finish_metadata();
 
-  # delete temporary files
-  if ($self->{'tmpfiles'}) {
-    unlink @{$self->{'tmpfiles'}};
-    delete $self->{'tmpfiles'};
-  }
-
   # These will only be in the root Message node
   delete $self->{'mime_boundary_state'};
   delete $self->{'mbox_sep'};
@@ -543,6 +537,11 @@
 
   # Go ahead and clean up all of the Message::Node parts
   while (my $part = shift @toclean) {
+    # bug 5557: windows requires tmp file be closed before it can be rm'd
+    if (ref $part->{'raw'} eq 'GLOB') {
+      close ($part->{'raw'});
+    }
+
     delete $part->{'headers'};
     delete $part->{'raw_headers'};
     delete $part->{'header_order'};
@@ -559,6 +558,12 @@
       push(@toclean, @{$part->{'body_parts'}});
       delete $part->{'body_parts'};
     }
+  }
+
+  # delete temporary files
+  if ($self->{'tmpfiles'}) {
+    unlink @{$self->{'tmpfiles'}};
+    delete $self->{'tmpfiles'};
   }
 }