You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by pa...@apache.org on 2005/04/29 07:31:15 UTC

svn commit: r165264 - /spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/DBM.pm

Author: parker
Date: Thu Apr 28 22:31:13 2005
New Revision: 165264

URL: http://svn.apache.org/viewcvs?rev=165264&view=rev
Log:
Untie the db files before we remove, windows did not like trying to unlink the opened files.  Also, added some better debuging for when we try to remove the files

Modified:
    spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/DBM.pm

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/DBM.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/DBM.pm?rev=165264&r1=165263&r2=165264&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/DBM.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/DBM.pm Thu Apr 28 22:31:13 2005
@@ -1470,21 +1470,33 @@
 
   return 0 unless ($self->tie_db_writable());
 
+  dbg("bayes: $$ untie-ing in preparation for removal.");
+
+  foreach my $dbname (@DBNAMES) {
+    my $db_var = 'db_'.$dbname;
+
+    if (exists $self->{$db_var}) {
+      dbg("bayes: $$ untie-ing $db_var");
+      untie %{$self->{$db_var}};
+      delete $self->{$db_var};
+    }
+  }
+
   my $path = $self->{bayes}->{main}->sed_path($self->{bayes}->{main}->{conf}->{bayes_path});
 
   foreach my $dbname (@DBNAMES, 'journal') {
     foreach my $ext ($self->DB_EXTENSIONS) {
       my $name = $path.'_'.$dbname.$ext;
-      unlink $name;
-      dbg("bayes: clear_database: removing $dbname");
+      my $ret = unlink $name;
+      dbg("bayes: clear_database: " . ($ret ? 'removed' : 'tried to remove') . " $name");
     }
   }
 
   # the journal file needs to be done separately since it has no extension
   foreach my $dbname ('journal') {
     my $name = $path.'_'.$dbname;
-    unlink $name;
-    dbg("bayes: clear_database: removing $dbname");
+    my $ret = unlink $name;
+    dbg("bayes: clear_database: " . ($ret ? 'removed' : 'tried to remove') . " $name");
   }
 
   $self->untie_db();