diff --git a/java/java-tests/testSrc/com/intellij/codeInspection/InspectionProfileTest.java b/java/java-tests/testSrc/com/intellij/codeInspection/InspectionProfileTest.java index 7ff990ffe87e..17b1d4f85d7b 100644 --- a/java/java-tests/testSrc/com/intellij/codeInspection/InspectionProfileTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInspection/InspectionProfileTest.java @@ -47,7 +47,7 @@ public class InspectionProfileTest extends LightIdeaTestCase { //noinspection AssignmentToStaticFieldFromInstanceMethod InspectionProfileImpl.INIT_INSPECTIONS = true; super.setUp(); - InspectionToolRegistrar.getInstance().ensureInitialized(); + InspectionToolRegistrar.getInstance().createTools(); } @Override diff --git a/java/java-tests/testSrc/com/intellij/codeInspection/RedundantSuppressTest.java b/java/java-tests/testSrc/com/intellij/codeInspection/RedundantSuppressTest.java index 39f83d4f7796..8b6ef9a30b04 100644 --- a/java/java-tests/testSrc/com/intellij/codeInspection/RedundantSuppressTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInspection/RedundantSuppressTest.java @@ -15,7 +15,6 @@ public class RedundantSuppressTest extends InspectionTestCase { @Override protected void setUp() throws Exception { super.setUp(); - InspectionToolRegistrar.getInstance().ensureInitialized(); myInspectionToolWrappers = new InspectionToolWrapper[]{ new LocalInspectionToolWrapper(new I18nInspection()), new LocalInspectionToolWrapper(new RawUseOfParameterizedTypeInspection()), diff --git a/platform/analysis-impl/src/com/intellij/codeInspection/ex/InspectionToolRegistrar.java b/platform/analysis-impl/src/com/intellij/codeInspection/ex/InspectionToolRegistrar.java index c1223d719167..f4e129ba0b47 100644 --- a/platform/analysis-impl/src/com/intellij/codeInspection/ex/InspectionToolRegistrar.java +++ b/platform/analysis-impl/src/com/intellij/codeInspection/ex/InspectionToolRegistrar.java @@ -32,6 +32,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.locks.ReentrantReadWriteLock; /** * @author max @@ -41,10 +42,11 @@ public class InspectionToolRegistrar { private final List> myInspectionToolFactories = new ArrayList>(); - private final AtomicBoolean myInspectionComponentsLoaded = new AtomicBoolean(false); + private boolean myInspectionComponentsLoaded = false; - public void ensureInitialized() { - if (!myInspectionComponentsLoaded.getAndSet(true)) { + private synchronized void ensureInitialized() { + if (!myInspectionComponentsLoaded) { + myInspectionComponentsLoaded = true; Set providers = new THashSet(); ContainerUtil.addAll(providers, ApplicationManager.getApplication().getComponents(InspectionToolProvider.class)); ContainerUtil.addAll(providers, Extensions.getExtensions(InspectionToolProvider.EXTENSION_POINT_NAME)); @@ -89,7 +91,7 @@ public class InspectionToolRegistrar { throw new RuntimeException("unknown inspection class: " + profileEntry + "; "+profileEntry.getClass()); } - public void registerTools(@NotNull InspectionToolProvider[] providers) { + private void registerTools(@NotNull InspectionToolProvider[] providers) { for (InspectionToolProvider provider : providers) { Class[] classes = provider.getInspectionClasses(); for (Class aClass : classes) { @@ -117,7 +119,7 @@ public class InspectionToolRegistrar { * make sure that it is not too late */ @NotNull - public Factory registerInspectionToolFactory(@NotNull Factory factory, boolean store) { + private Factory registerInspectionToolFactory(@NotNull Factory factory, boolean store) { if (store) { myInspectionToolFactories.add(factory); } diff --git a/xml/dom-tests/tests/com/intellij/util/xml/DomHighlightingLiteTest.java b/xml/dom-tests/tests/com/intellij/util/xml/DomHighlightingLiteTest.java index 742635651140..365bec995cca 100644 --- a/xml/dom-tests/tests/com/intellij/util/xml/DomHighlightingLiteTest.java +++ b/xml/dom-tests/tests/com/intellij/util/xml/DomHighlightingLiteTest.java @@ -50,8 +50,6 @@ public class DomHighlightingLiteTest extends DomTestCase { protected void setUp() throws Exception { super.setUp(); - final InspectionToolRegistrar registrar = new InspectionToolRegistrar(); - registrar.registerTools(new InspectionToolProvider[0]); myInspectionProfile = new MockInspectionProfile(); myAnnotationsManager = new DomElementAnnotationsManagerImpl(getProject()) {