From fbe35fb8de56fd6d072dfda4f678ac9105314030 Mon Sep 17 00:00:00 2001 From: "Anna.Kozlova" Date: Tue, 10 Mar 2020 10:24:10 +0100 Subject: [PATCH] inspection profile: tolerate commit of a model without modifications in tools (IDEA-234149) GitOrigin-RevId: 1c54ed295201c756138507d953ba35025b24126e --- .../codeInspection/ex/InspectionProfileTest.java | 10 ++++++++++ .../ex/InspectionProfileModifiableModel.kt | 6 ++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/java/java-tests/testSrc/com/intellij/codeInspection/ex/InspectionProfileTest.java b/java/java-tests/testSrc/com/intellij/codeInspection/ex/InspectionProfileTest.java index 2f2c7a10dc08..c46634f358b4 100644 --- a/java/java-tests/testSrc/com/intellij/codeInspection/ex/InspectionProfileTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInspection/ex/InspectionProfileTest.java @@ -107,6 +107,16 @@ public class InspectionProfileTest extends LightIdeaTestCase { return new InspectionProfileImpl(PROFILE, InspectionToolRegistrar.getInstance(), base); } + public void testModificationWithoutModification() { + InspectionProfileImpl profile = createProfile(); + profile.getAllTools(); + assertTrue(profile.wasInitialized()); + assertNotEmpty(profile.myTools.keySet()); + profile.modifyProfile(m -> {}); + assertTrue(profile.wasInitialized()); + assertNotEmpty(profile.myTools.keySet()); + } + public void testSameNameSharedProfile() { BaseInspectionProfileManager profileManager = getApplicationProfileManager(); InspectionProfileImpl localProfile = createProfile(); diff --git a/platform/analysis-impl/src/com/intellij/codeInspection/ex/InspectionProfileModifiableModel.kt b/platform/analysis-impl/src/com/intellij/codeInspection/ex/InspectionProfileModifiableModel.kt index 5562199df378..743a6a8ed950 100644 --- a/platform/analysis-impl/src/com/intellij/codeInspection/ex/InspectionProfileModifiableModel.kt +++ b/platform/analysis-impl/src/com/intellij/codeInspection/ex/InspectionProfileModifiableModel.kt @@ -113,8 +113,10 @@ open class InspectionProfileModifiableModel(val source: InspectionProfileImpl) : description = model.description isProjectLevel = model.isProjectLevel myLockedProfile = model.myLockedProfile - myChangedToolNames = model.myChangedToolNames - myTools = model.myTools + myChangedToolNames = null + if (model.wasInitialized()) { + myTools = model.myTools + } profileManager = model.profileManager }