]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 257351: collectstats.pl dies if an invalid series is defined - Patch by FrédÃ...
authorlpsolit%gmail.com <>
Mon, 20 Aug 2007 23:06:45 +0000 (23:06 +0000)
committerlpsolit%gmail.com <>
Mon, 20 Aug 2007 23:06:45 +0000 (23:06 +0000)
Bugzilla/DB.pm
collectstats.pl

index 4bfb3ae431cbfdc49f3f6ceeac600c70ec5b5b82..b4f65968526994aa5b4cc709e5d85b03888e6b16 100644 (file)
@@ -321,7 +321,7 @@ sub sql_group_by {
     my ($self, $needed_columns, $optional_columns) = @_;
 
     my $expression = "GROUP BY $needed_columns";
-    $expression .= ", " . $optional_columns if defined($optional_columns);
+    $expression .= ", " . $optional_columns if $optional_columns;
     
     return $expression;
 }
index 3702a472b0bbd19db4cf979d31017f3540bb26a7..80c70fe2be9822d8690e170234fb8c57532cc683 100755 (executable)
@@ -575,22 +575,19 @@ sub CollectSeriesData {
         # We set up the user for Search.pm's permission checking - each series
         # runs with the permissions of its creator.
         my $user = new Bugzilla::User($serieses->{$series_id}->{'creator'});
-
         my $cgi = new Bugzilla::CGI($serieses->{$series_id}->{'query'});
-        my $search = new Bugzilla::Search('params' => $cgi,
-                                          'fields' => ["bugs.bug_id"],
-                                          'user'   => $user);
-        my $sql = $search->getSQL();
-        
         my $data;
-        
-        # We can't die if we get dodgy SQL back for whatever reason, so we
-        # eval() this and, if it fails, just ignore it and carry on.
-        # One day we might even log an error.
-        eval { 
+
+        # Do not die if Search->new() detects invalid data, such as an obsolete
+        # login name or a renamed product or component, etc.
+        eval {
+            my $search = new Bugzilla::Search('params' => $cgi,
+                                              'fields' => ["bugs.bug_id"],
+                                              'user'   => $user);
+            my $sql = $search->getSQL();
             $data = $shadow_dbh->selectall_arrayref($sql);
         };
-        
+
         if (!$@) {
             # We need to count the returned rows. Without subselects, we can't
             # do this directly in the SQL for all queries. So we do it by hand.