From: Aaron Schulz Date: Wed, 30 Apr 2014 20:37:49 +0000 (-0700) Subject: Avoid fatal error if doing a DB query after close() X-Git-Tag: 1.31.0-rc.0~15939^2 X-Git-Url: http://git.cyclocoop.org/%24image?a=commitdiff_plain;h=ac8c53583c9ce9031ca54ad0bb5845da7b29d401;p=lhc%2Fweb%2Fwiklou.git Avoid fatal error if doing a DB query after close() Change-Id: I606a3ec5a45136abf396f86f5a65db209128d5c9 --- diff --git a/includes/db/Database.php b/includes/db/Database.php index b502bb9874..8288e65201 100644 --- a/includes/db/Database.php +++ b/includes/db/Database.php @@ -1088,6 +1088,11 @@ abstract class DatabaseBase implements IDatabase, DatabaseType { $queryId = MWDebug::query( $sql, $fname, $isMaster ); + # Avoid fatals if close() was called + if ( !$this->isOpen() ) { + throw new DBUnexpectedError( $this, "DB connection was already closed." ); + } + # Do the query and handle errors $ret = $this->doQuery( $commentedSql ); diff --git a/tests/phpunit/includes/db/DatabaseTestHelper.php b/tests/phpunit/includes/db/DatabaseTestHelper.php index 790f273c2d..39c311f119 100644 --- a/tests/phpunit/includes/db/DatabaseTestHelper.php +++ b/tests/phpunit/includes/db/DatabaseTestHelper.php @@ -156,6 +156,10 @@ class DatabaseTestHelper extends DatabaseBase { return 'test'; } + function isOpen() { + return true; + } + protected function closeConnection() { return false; }