From: Martin Urbanec Date: Sun, 16 Jun 2019 14:15:22 +0000 (+0200) Subject: [bugfix] Fetch tag ID before calling undefineTag() X-Git-Tag: 1.34.0-rc.0~1382^2 X-Git-Url: http://git.cyclocoop.org/?a=commitdiff_plain;h=27cbfaa54f1e699b1b2f61ef2f33eff1c999819b;p=lhc%2Fweb%2Fwiklou.git [bugfix] Fetch tag ID before calling undefineTag() undefineTag() also deletes the tag if it's not used anywhere, which is breaking the rest of deleteTagEverywhere() in that case. Bug: T225564 Change-Id: I7ca5db9efd0088b266e33c0a9ce78d73a4fa87c9 --- diff --git a/includes/changetags/ChangeTags.php b/includes/changetags/ChangeTags.php index 9146429914..7466f8236a 100644 --- a/includes/changetags/ChangeTags.php +++ b/includes/changetags/ChangeTags.php @@ -1229,11 +1229,13 @@ class ChangeTags { $dbw = wfGetDB( DB_MASTER ); $dbw->startAtomic( __METHOD__ ); + // fetch tag id, this must be done before calling undefineTag(), see T225564 + $tagId = MediaWikiServices::getInstance()->getChangeTagDefStore()->getId( $tag ); + // set ctd_user_defined = 0 self::undefineTag( $tag ); // delete from change_tag - $tagId = MediaWikiServices::getInstance()->getChangeTagDefStore()->getId( $tag ); $dbw->delete( 'change_tag', [ 'ct_tag_id' => $tagId ], __METHOD__ ); $dbw->delete( 'change_tag_def', [ 'ctd_name' => $tag ], __METHOD__ ); $dbw->endAtomic( __METHOD__ );