From 27cbfaa54f1e699b1b2f61ef2f33eff1c999819b Mon Sep 17 00:00:00 2001 From: Martin Urbanec Date: Sun, 16 Jun 2019 16:15:22 +0200 Subject: [PATCH] [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 --- includes/changetags/ChangeTags.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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__ ); -- 2.20.1