From 132f1b1ea8ddf6662adf3d03c5bbc041fa409b9a Mon Sep 17 00:00:00 2001 From: Brad Jorsch Date: Wed, 6 May 2015 14:42:38 -0400 Subject: [PATCH] MalformedTitleException should call parent::__construct There's no reason for $ex->getMessage() to return nothing. Do like ErrorPageError does and get the default English message for the parent. Also move the appending of $titleText to $errorMessageParameters into MalformedTitleException itself and document it, so every catcher of the exception doesn't need to know about this, and fix the check so it doesn't screw up for title "0". Change-Id: I43d988602b847b67a3cf0aa84e271a0b5bd9adae --- includes/exception/BadTitleError.php | 4 ---- includes/title/MalformedTitleException.php | 14 +++++++++++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/includes/exception/BadTitleError.php b/includes/exception/BadTitleError.php index 4710022d9f..039b9c60cc 100644 --- a/includes/exception/BadTitleError.php +++ b/includes/exception/BadTitleError.php @@ -39,10 +39,6 @@ class BadTitleError extends ErrorPageError { parent::__construct( 'badtitle', 'badtitletext', array() ); } else { $errorMessageParams = $msg->getErrorMessageParameters(); - $titleText = $msg->getTitleText(); - if ( $titleText ) { - $errorMessageParams[] = $titleText; - } parent::__construct( 'badtitle', $errorMessage, $errorMessageParams ); } } else { diff --git a/includes/title/MalformedTitleException.php b/includes/title/MalformedTitleException.php index e7477781b7..fb89e4fe06 100644 --- a/includes/title/MalformedTitleException.php +++ b/includes/title/MalformedTitleException.php @@ -30,12 +30,20 @@ class MalformedTitleException extends Exception { /** * @param string $errorMessage Localisation message describing the error (since MW 1.26) * @param string $titleText The invalid title text (since MW 1.26) - * @param string[] $errorMessageParameters Additional parameters for the error message (since MW 1.26) + * @param string[] $errorMessageParameters Additional parameters for the error message. $titleText will be appended if it's not null. (since MW 1.26) */ public function __construct( $errorMessage = null, $titleText = null, $errorMessageParameters = array() ) { $this->errorMessage = $errorMessage; $this->titleText = $titleText; + if ( $titleText !== null ) { + $errorMessageParameters[] = $titleText; + } $this->errorMessageParameters = $errorMessageParameters; + + // Supply something useful for Exception::getMessage() to return. + $enMsg = wfMessage( $errorMessage, $errorMessageParameters ); + $enMsg->inLanguage( 'en' )->useDatabase( false ); + parent::__construct( $enMsg->text() ); } /** @@ -45,7 +53,7 @@ class MalformedTitleException extends Exception { public function getTitleText() { return $this->titleText; } - + /** * @since 1.26 * @return string|null @@ -53,7 +61,7 @@ class MalformedTitleException extends Exception { public function getErrorMessage() { return $this->errorMessage; } - + /** * @since 1.26 * @return string[] -- 2.20.1