From: Brad Jorsch Date: Mon, 18 Jan 2016 22:18:19 +0000 (-0500) Subject: When serializing Message, don't try to unstub StubUserLang X-Git-Tag: 1.31.0-rc.0~8085^2 X-Git-Url: https://git.cyclocoop.org/%242?a=commitdiff_plain;h=471637c571d5fc53b28ceb3887ed26dad971e897;p=lhc%2Fweb%2Fwiklou.git When serializing Message, don't try to unstub StubUserLang If the serialization is happening during PHP shutdown due to a Session save, it can fatal because $wgLang is already gone. Change-Id: I7d877be15ef8639f3b94b74bba763053ec289358 --- diff --git a/includes/Message.php b/includes/Message.php index 54efd261b6..c71a953498 100644 --- a/includes/Message.php +++ b/includes/Message.php @@ -271,7 +271,7 @@ class Message implements MessageSpecifier, Serializable { public function serialize() { return serialize( array( 'interface' => $this->interface, - 'language' => $this->language->getCode(), + 'language' => $this->language instanceof StubUserLang ? false : $this->language->getCode(), 'key' => $this->key, 'keysToTry' => $this->keysToTry, 'parameters' => $this->parameters, @@ -287,6 +287,8 @@ class Message implements MessageSpecifier, Serializable { * @param string $serialized */ public function unserialize( $serialized ) { + global $wgLang; + $data = unserialize( $serialized ); $this->interface = $data['interface']; $this->key = $data['key']; @@ -294,7 +296,7 @@ class Message implements MessageSpecifier, Serializable { $this->parameters = $data['parameters']; $this->format = $data['format']; $this->useDatabase = $data['useDatabase']; - $this->language = Language::factory( $data['language'] ); + $this->language = $data['language'] ? Language::factory( $data['language'] ) : $wgLang; $this->title = $data['title']; }