]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 530270: Whining fails if mail queueing is enabled - Patch by Frédéric Buclin...
authorlpsolit%gmail.com <>
Sun, 22 Nov 2009 22:26:03 +0000 (22:26 +0000)
committerlpsolit%gmail.com <>
Sun, 22 Nov 2009 22:26:03 +0000 (22:26 +0000)
Bugzilla.pm
Bugzilla/JobQueue.pm

index 7d1b1f801da132154d27db6be8105164742144a1..0969ccedb02a08520c22f07860518a68ad56b6cb 100644 (file)
@@ -337,12 +337,17 @@ sub job_queue {
 sub dbh {
     my $class = shift;
     # If we're not connected, then we must want the main db
-    $class->request_cache->{dbh} ||= $class->request_cache->{dbh_main} 
-        = Bugzilla::DB::connect_main();
+    $class->request_cache->{dbh} ||= $class->dbh_main;
 
     return $class->request_cache->{dbh};
 }
 
+sub dbh_main {
+    my $class = shift;
+    $class->request_cache->{dbh_main} ||= Bugzilla::DB::connect_main();
+    return $class->request_cache->{dbh_main};
+}
+
 sub languages {
     my $class = shift;
     return $class->request_cache->{languages}
@@ -426,7 +431,7 @@ sub switch_to_shadow_db {
         if ($class->params->{'shadowdb'}) {
             $class->request_cache->{dbh_shadow} = Bugzilla::DB::connect_shadow();
         } else {
-            $class->request_cache->{dbh_shadow} = request_cache()->{dbh_main};
+            $class->request_cache->{dbh_shadow} = $class->dbh_main;
         }
     }
 
@@ -440,11 +445,8 @@ sub switch_to_shadow_db {
 sub switch_to_main_db {
     my $class = shift;
 
-    $class->request_cache->{dbh} = $class->request_cache->{dbh_main};
-    # We have to return $class->dbh instead of {dbh} as
-    # {dbh_main} may be undefined if no connection to the main DB
-    # has been established yet.
-    return $class->dbh;
+    $class->request_cache->{dbh} = $class->dbh_main;
+    return $class->dbh_main;
 }
 
 sub get_fields {
@@ -710,6 +712,10 @@ used to automatically answer or skip prompts.
 
 The current database handle. See L<DBI>.
 
+=item C<dbh_main>
+
+The main database handle. See L<DBI>.
+
 =item C<languages>
 
 Currently installed languages.
index 102f58bc68d247f3e4c664b74584ed703ad3af84..b938df1cb591b8ddd3d24f0cde918009f581f275 100644 (file)
@@ -43,9 +43,11 @@ sub new {
     }
 
     my $lc = Bugzilla->localconfig;
+    # We need to use the main DB as TheSchwartz module is going
+    # to write to it.
     my $self = $class->SUPER::new(
         databases => [{
-            dsn    => Bugzilla->dbh->{private_bz_dsn},
+            dsn    => Bugzilla->dbh_main->{private_bz_dsn},
             user   => $lc->{db_user},
             pass   => $lc->{db_pass},
             prefix => 'ts_',