From 39259a36ec95520d7ad4d704a2f0d31fb225966a Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 15 Jun 2011 19:05:25 +0000 Subject: [PATCH] Fix for partial regression in r84534: Block::newFromId was no longer handling the case where there was no matching row correctly. Now returns null. This bug was showing up in test results like this: BlockTest::testInitializerFunctionsReturnCorrectBlock Trying to get property of non-object /home/ci/cruisecontrol-bin-2.8.3/projects/mw/source/includes/Block.php:340 /home/ci/cruisecontrol-bin-2.8.3/projects/mw/source/includes/Block.php:365 /home/ci/cruisecontrol-bin-2.8.3/projects/mw/source/includes/Block.php:118 /home/ci/cruisecontrol-bin-2.8.3/projects/mw/source/tests/phpunit/includes/BlockTest.php:60 /home/ci/cruisecontrol-bin-2.8.3/projects/mw/source/tests/phpunit/MediaWikiTestCase.php:60 /home/ci/cruisecontrol-bin-2.8.3/projects/mw/source/tests/phpunit/MediaWikiPHPUnitCommand.php:20 /home/ci/cruisecontrol-bin-2.8.3/projects/mw/source/tests/phpunit/phpunit.php:60 However, that only triggers because the actual test is failing -- it's expecting to get a return back. This can only be reproduce when using the suite.xml configuration file, and not when running the BlockTest standalone. --- includes/Block.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/includes/Block.php b/includes/Block.php index 2856824925..280552b5fd 100644 --- a/includes/Block.php +++ b/includes/Block.php @@ -105,7 +105,7 @@ class Block { * Load a blocked user from their block id. * * @param $id Integer: Block id to search for - * @return Block object + * @return Block object or null */ public static function newFromID( $id ) { $dbr = wfGetDB( DB_SLAVE ); @@ -115,7 +115,11 @@ class Block { array( 'ipb_id' => $id ), __METHOD__ ); - return Block::newFromRow( $res ); + if ( $res ) { + return Block::newFromRow( $res ); + } else { + return null; + } } /** -- 2.20.1