From fb04d38e233f2fd34ec64dafdac614d89c622941 Mon Sep 17 00:00:00 2001 From: Brad Jorsch Date: Mon, 11 Mar 2013 14:26:56 -0400 Subject: [PATCH] (bug 44111) ErrorPageError log messages should be in English We want log messages to be in English. ErrorPageError, however, will log the messages using the language of the current user. This isn't often noticed, because the normal page view code path doesn't log ErrorPageError and the API doesn't usually have ErrorPageError thrown in the first place. The fix is simple enough: in the constructor, create a new Message object and call ->inLanguage( 'en' ) on it. And, for good measure, ->useDatabase( false ) so customizations on the local wiki won't show up in the log files either. Since ErrorPageError already overrides report(), that will take care of still showing the expected language to the end user. Bug: 44111 Change-Id: I9a6ab43d63e76fa9708b62e32ddc3262aff282f7 --- includes/Exception.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/includes/Exception.php b/includes/Exception.php index 7d9f63d9d1..dc3432031e 100644 --- a/includes/Exception.php +++ b/includes/Exception.php @@ -328,11 +328,17 @@ class ErrorPageError extends MWException { $this->msg = $msg; $this->params = $params; + // Bug 44111: Messages in the log files should be in English and not + // customized by the local wiki. So get the default English version for + // passing to the parent constructor. Our overridden report() below + // makes sure that the page shown to the user is not forced to English. if( $msg instanceof Message ) { - parent::__construct( $msg ); + $enMsg = clone( $msg ); } else { - parent::__construct( wfMessage( $msg )->text() ); + $enMsg = wfMessage( $msg, $params ); } + $enMsg->inLanguage( 'en' )->useDatabase( false ); + parent::__construct( $enMsg->text() ); } function report() { -- 2.20.1