mediawiki-extensions-Cite/src
Thiemo Kreuz df1a45b84c Fix incomplete cloning of the Parser::$extCite instance
This is what happens:
* The issue happens only on pages with two <ref> tags than share the
same name and group, but have conflicting text.
* This triggers a code path that renders an error message and calls
Message::plain() as well as Parser::addTrackingCategory(), which calls
Message::text().
* The Message class is asking for a new, fresh parser. This means the
parser is cloned and it's state cleared, while keeping stuff like
parser hooks.
* Cloning the parser triggers the ParserCloned hook.
* The hook handler clones the Cite instance stored in Parser::$extCite.
* PHP doesn't do deep cloning. Object properties are not cloned.
* Since I091a0b7 the internal state of the Cite class is extracted to
another class.
* This means the state is not cloned any more since I091a0b7.
* Now two Cite instances share the same state.
* At the end of the hook handler, the state is cleared, which also
clears the state of the original instance.

We will most probably solve this on master by getting rid of cloning
Cite. We propose this additional hotfix for the branch.

Bug: T240248
Change-Id: Ic5a438e04d003a637ae08aae936d9977cc90d5d3
2019-12-10 14:20:00 +00:00
..
Hooks Remove obsolete ParserBeforeTidy hook handler 2019-12-04 16:56:43 +01:00
ResourceLoader Move all code to PSR-4 compatible namespaces 2019-11-20 17:00:13 +01:00
Cite.php Fix incomplete cloning of the Parser::$extCite instance 2019-12-10 14:20:00 +00:00
CiteErrorReporter.php Add strict PHP 7 type hints to most code 2019-12-02 08:51:42 +01:00
CiteKeyFormatter.php Use message localizer in CiteKeyFormatter 2019-12-05 14:57:32 +01:00
FootnoteMarkFormatter.php Narrow message localizer interface 2019-12-06 12:17:09 +01:00
ReferenceMessageLocalizer.php Narrow message localizer interface 2019-12-06 12:17:09 +01:00
ReferencesFormatter.php Better naming for ReferenceFormatter class and methods 2019-12-10 08:40:09 +01:00
ReferenceStack.php Merge "Comment about annoying thing" 2019-12-09 13:13:49 +00:00