Merge "MalformedTitleException should call parent::__construct"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Thu, 7 May 2015 13:07:25 +0000 (13:07 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 7 May 2015 13:07:25 +0000 (13:07 +0000)
includes/exception/BadTitleError.php
includes/title/MalformedTitleException.php

index 4710022..039b9c6 100644 (file)
@@ -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 {
index e747778..fb89e4f 100644 (file)
@@ -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[]