]> git.donarmstrong.com Git - debbugs.git/blobdiff - Debbugs/DB/Load.pm
skip empty correspondents
[debbugs.git] / Debbugs / DB / Load.pm
index e768df97609195a90a8209a847861685c83ae46d..1af6c6517162517e3afa757f6ba01e8580178395 100644 (file)
@@ -385,8 +385,12 @@ sub load_bug_log {
                                subject => $subject
                               });
            eval {
-               $m->sent_date(DateTime::Format::Mail->
-                             parse_datetime($entity->head->get('Date',0)));
+               my $date = DateTime::Format::Mail->
+                    parse_datetime($entity->head->get('Date',0));
+                if (abs($date->offset) >= 60 * 60 * 12) {
+                    $date = $date->set_time_zone('UTC');
+                }
+                $m->sent_date($date);
            };
            my $spam = $entity->head->get('X-Spam-Status',0)//'';
            if ($spam=~ /score=([\d\.]+)/) {
@@ -400,9 +404,11 @@ sub load_bug_log {
            my @cors;
            for my $type (keys %corr) {
                for my $addr (@{$corr{$type}}) {
+                    my $cor = $s->resultset('Correspondent')->
+                        get_correspondent_id($addr);
+                    next unless defined $cor;
                    push @cors,
-                       {correspondent => $s->resultset('Correspondent')->
-                        get_correspondent_id($addr),
+                       {correspondent => $cor,
                         correspondent_type => $type,
                        };
                }
@@ -410,7 +416,8 @@ sub load_bug_log {
            $m->update();
            $s->txn_do(sub {
                           $m->message_correspondents()->delete();
-                          $m->add_to_message_correspondents(@cors);
+                          $m->add_to_message_correspondents(@cors) if
+                               @cors;
                       }
                      );
        }