Guard recursion flag against exceptions.
To avoid misleading errors in case of failed initialization, flags used to protected against recursion need to be reset in case of an exception being thrown. Change-Id: Ifbc1db4b827012177fcfd271981179ebb2329b52
This commit is contained in:
parent
90f7fbd20a
commit
9636d44448
1 changed files with 18 additions and 12 deletions
|
|
@ -308,22 +308,28 @@ class RequestContext implements IContextSource {
|
|||
|
||||
global $wgLanguageCode, $wgContLang;
|
||||
|
||||
$request = $this->getRequest();
|
||||
$user = $this->getUser();
|
||||
try {
|
||||
$request = $this->getRequest();
|
||||
$user = $this->getUser();
|
||||
|
||||
$code = $request->getVal( 'uselang', $user->getOption( 'language' ) );
|
||||
$code = self::sanitizeLangCode( $code );
|
||||
$code = $request->getVal( 'uselang', $user->getOption( 'language' ) );
|
||||
$code = self::sanitizeLangCode( $code );
|
||||
|
||||
wfRunHooks( 'UserGetLanguageObject', array( $user, &$code, $this ) );
|
||||
wfRunHooks( 'UserGetLanguageObject', array( $user, &$code, $this ) );
|
||||
|
||||
if ( $code === $wgLanguageCode ) {
|
||||
$this->lang = $wgContLang;
|
||||
} else {
|
||||
$obj = Language::factory( $code );
|
||||
$this->lang = $obj;
|
||||
if ( $code === $wgLanguageCode ) {
|
||||
$this->lang = $wgContLang;
|
||||
} else {
|
||||
$obj = Language::factory( $code );
|
||||
$this->lang = $obj;
|
||||
}
|
||||
|
||||
unset( $this->recursion );
|
||||
}
|
||||
catch ( Exception $ex ) {
|
||||
unset( $this->recursion );
|
||||
throw $ex;
|
||||
}
|
||||
|
||||
unset( $this->recursion );
|
||||
}
|
||||
|
||||
return $this->lang;
|
||||
|
|
|
|||
Loading…
Reference in a new issue