X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2FWiki.php;h=aed1f65cb39037e86ad12cc00bfd547d966ade34;hb=22e045ab12acb5e7285adc8087585d001487a22d;hp=fbafba813957c0096bd1c19c62b1e17360eac646;hpb=83a1cf573f7439e45d292a072472ac49212c9ffb;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/Wiki.php b/includes/Wiki.php index fbafba8139..aed1f65cb3 100644 --- a/includes/Wiki.php +++ b/includes/Wiki.php @@ -34,7 +34,7 @@ class MediaWiki { private $context; /** - * @param $x null|WebRequest + * @param null|WebRequest $x * @return WebRequest */ public function request( WebRequest $x = null ) { @@ -44,7 +44,7 @@ class MediaWiki { } /** - * @param $x null|OutputPage + * @param null|OutputPage $x * @return OutputPage */ public function output( OutputPage $x = null ) { @@ -67,7 +67,7 @@ class MediaWiki { /** * Parse the request to get the Title object * - * @return Title object to be $wgTitle + * @return Title Title object to be $wgTitle */ private function parseTitle() { global $wgContLang; @@ -142,7 +142,7 @@ class MediaWiki { /** * Returns the name of the action that will be executed. * - * @return string: action + * @return string Action */ public function getAction() { static $action = null; @@ -311,7 +311,7 @@ class MediaWiki { * Initialize the main Article object for "standard" actions (view, etc) * Create an Article object for the page, following redirects if needed. * - * @return mixed an Article, or a string to redirect to another URL + * @return mixed An Article, or a string to redirect to another URL */ private function initializeArticle() { global $wgDisableHardRedirects; @@ -393,8 +393,8 @@ class MediaWiki { /** * Perform one of the "standard" actions * - * @param $page Page - * @param $requestTitle The original title, before any redirects were applied + * @param Page $page + * @param Title $requestTitle The original title, before any redirects were applied */ private function performAction( Page $page, Title $requestTitle ) { global $wgUseSquid, $wgSquidMaxage; @@ -444,7 +444,15 @@ class MediaWiki { public function run() { try { $this->checkMaxLag(); - $this->main(); + try { + $this->main(); + } catch ( ErrorPageError $e ) { + // Bug 62091: while exceptions are convenient to bubble up GUI errors, + // they are not internal application faults. As with normal requests, this + // should commit, print the output, do deferred updates, jobs, and profiling. + wfGetLBFactory()->commitMasterChanges(); + $e->report(); // display the GUI error + } if ( function_exists( 'fastcgi_finish_request' ) ) { fastcgi_finish_request(); } @@ -534,7 +542,7 @@ class MediaWiki { $request->getProtocol() == 'http' ) { $oldUrl = $request->getFullRequestURL(); - $redirUrl = str_replace( 'http://', 'https://', $oldUrl ); + $redirUrl = preg_replace( '#^http://#', 'https://', $oldUrl ); if ( $request->wasPosted() ) { // This is weird and we'd hope it almost never happens. This @@ -651,8 +659,13 @@ class MediaWiki { return; } - if ( !JobQueueGroup::singleton()->queuesHaveJobs( JobQueueGroup::TYPE_DEFAULT ) ) { - return; // do not send request if there are probably no jobs + try { + if ( !JobQueueGroup::singleton()->queuesHaveJobs( JobQueueGroup::TYPE_DEFAULT ) ) { + return; // do not send request if there are probably no jobs + } + } catch ( JobQueueError $e ) { + MWExceptionHandler::logException( $e ); + return; // do not make the site unavailable } $query = array( 'title' => 'Special:RunJobs',