]> git.donarmstrong.com Git - debbugs.git/blobdiff - Debbugs/Status.pm
Package member key is the fully-qualified name; fix error in get
[debbugs.git] / Debbugs / Status.pm
index bc5e2be623370b0c8bcc5f8bcdc13d15e6a51267..45b01a9a8781863a28f7548ad6fc0cfac403adef 100644 (file)
@@ -1010,16 +1010,16 @@ sub bug_archiveable{
      # If we just are checking if the bug can be archived, we'll not even bother
      # checking the versioning information if the bug has been -done for less than 28 days.
      my $log_file = getbugcomponent($param{bug},'log');
-     if (not defined $log_file) {
+     if (not defined $log_file or not -e $log_file) {
          print STDERR "Cannot archive $param{bug} because the log doesn't exist\n" if $DEBUG;
          return $cannot_archive;
      }
-     my $max_log_age = max(map {$config{remove_age} - -M $_}
-                          $log_file, map {my $log = getbugcomponent($_,'log');
+     my @log_files = $log_file, (map {my $log = getbugcomponent($_,'log');
                                           defined $log ? ($log) : ();
                                      }
-                          split / /, $status->{mergedwith}
-                      );
+                          split / /, $status->{mergedwith});
+     my $max_log_age = max(map {-e $_?($config{remove_age} - -M _):0}
+                          @log_files);
      if (not $param{days_until} and not $param{ignore_time}
         and $max_log_age > 0
        ) {
@@ -1321,6 +1321,10 @@ sub get_bug_statuses {
      my %param = validate_with(params => \@_,
                               spec   => $spec,
                              );
+     my $bin_to_src_cache = {};
+     if (defined $param{binary_to_source_cache}) {
+        $bin_to_src_cache = $param{binary_to_source_cache};
+     }
      my %status;
      my %statuses;
      if (defined $param{schema}) {
@@ -1339,18 +1343,6 @@ sub get_bug_statuses {
             }
             $bug_status->{keywords} =
                 $bug_status->{tags};
-            $bug_status->{log_modified} =
-                DateTime::Format::Pg->
-                    parse_datetime($bug_status->{log_modified})->
-                    epoch;
-            $bug_status->{date} =
-                DateTime::Format::Pg->
-                    parse_datetime($bug_status->{date})->
-                    epoch;
-            $bug_status->{last_modified} =
-                DateTime::Format::Pg->
-                    parse_datetime($bug_status->{last_modified})->
-                    epoch;
             $bug_status->{location} = $bug_status->{archived}?'archive':'db-h';
             for my $field (qw(found_versions fixed_versions found_date fixed_date)) {
                 $bug_status->{$field} = [split ' ', $bug_status->{$field} // ''];
@@ -1371,7 +1363,7 @@ sub get_bug_statuses {
                 exists $param{bug_index}{$bug}) {
                 my %status = %{$param{bug_index}{$bug}};
                 $status{pending} = $status{status};
-                $status{id} = $param{bug};
+                $status{id} = $bug;
                 $statuses{$bug} = \%status;
             }
             elsif (defined $param{status} and
@@ -1382,6 +1374,7 @@ sub get_bug_statuses {
                 my $location = getbuglocation($bug, 'summary');
                 next if not defined $location or not length $location;
                 my %status = %{ readbug( $bug, $location ) };
+                $status{id} = $bug;
                 $statuses{$bug} = \%status;
             }
         }
@@ -1402,8 +1395,9 @@ sub get_bug_statuses {
 
         $status->{source} = binary_to_source(binary=>[split /\s*,\s*/, $status->{package}],
                                              source_only => 1,
-                                             exists $param{binary_to_source_cache}?
-                                             (cache =>$param{binary_to_source_cache}):(),
+                                             cache => $bin_to_src_cache,
+                                             defined $param{schema}?
+                                             (schema => $param{schema}):(),
                                             );
 
         $status->{"package"} = 'unknown' if ($status->{"package"} eq '');