]> 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:11:46 +0000 (23:11 +0000)
committerlpsolit%gmail.com <>
Mon, 20 Aug 2007 23:11:46 +0000 (23:11 +0000)
Bugzilla/DB.pm
collectstats.pl

index ba2a9c631c7dc87b93510537b445ba966df745db..544d6da3f539adf23b27177998180e326160da1b 100644 (file)
@@ -244,7 +244,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 2d7d3d25846b9c7345e8316b6878a228349a11f6..120df0130f6513fcb2405c66bc180e29c62ad249 100755 (executable)
@@ -482,22 +482,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.