diff --git a/platform/platform-api/src/com/intellij/openapi/actionSystem/DefaultActionGroup.java b/platform/platform-api/src/com/intellij/openapi/actionSystem/DefaultActionGroup.java index 50e311961d9e..c6cad49946fb 100644 --- a/platform/platform-api/src/com/intellij/openapi/actionSystem/DefaultActionGroup.java +++ b/platform/platform-api/src/com/intellij/openapi/actionSystem/DefaultActionGroup.java @@ -16,11 +16,11 @@ package com.intellij.openapi.actionSystem; import com.intellij.openapi.util.Pair; +import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.List; -import java.util.concurrent.CopyOnWriteArrayList; /** * A default implementation of {@link ActionGroup}. Provides the ability @@ -36,11 +36,11 @@ public class DefaultActionGroup extends ActionGroup { /** * Contains instances of AnAction */ - private final List mySortedChildren = new CopyOnWriteArrayList(); + private final List mySortedChildren = ContainerUtil.createEmptyCOWList(); /** * Contains instances of Pair */ - private final List> myPairs = new CopyOnWriteArrayList>(); + private final List> myPairs = ContainerUtil.createEmptyCOWList(); public DefaultActionGroup(){ this(null, false); diff --git a/platform/platform-impl/src/com/intellij/application/options/PathMacrosImpl.java b/platform/platform-impl/src/com/intellij/application/options/PathMacrosImpl.java index ce82d3c66632..1f3494c0a039 100644 --- a/platform/platform-impl/src/com/intellij/application/options/PathMacrosImpl.java +++ b/platform/platform-impl/src/com/intellij/application/options/PathMacrosImpl.java @@ -26,13 +26,13 @@ import com.intellij.openapi.util.RoamingTypeDisabled; import com.intellij.openapi.util.WriteExternalException; import com.intellij.util.concurrency.JBReentrantReadWriteLock; import com.intellij.util.concurrency.LockFactory; +import com.intellij.util.containers.ContainerUtil; import com.intellij.util.containers.HashMap; import org.jdom.Element; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import java.util.*; -import java.util.concurrent.CopyOnWriteArrayList; /** * @author dsl @@ -42,7 +42,7 @@ public class PathMacrosImpl extends PathMacros implements ApplicationComponent, private final Map myLegacyMacros = new HashMap(); private final Map myMacros = new HashMap(); private final JBReentrantReadWriteLock myLock = LockFactory.createReadWriteLock(); - private final List myIgnoredMacros = new CopyOnWriteArrayList(); + private final List myIgnoredMacros = ContainerUtil.createEmptyCOWList(); @NonNls public static final String MACRO_ELEMENT = "macro"; diff --git a/platform/platform-impl/src/com/intellij/openapi/application/impl/LaterInvocator.java b/platform/platform-impl/src/com/intellij/openapi/application/impl/LaterInvocator.java index e48983837ddb..20cde5319e85 100644 --- a/platform/platform-impl/src/com/intellij/openapi/application/impl/LaterInvocator.java +++ b/platform/platform-impl/src/com/intellij/openapi/application/impl/LaterInvocator.java @@ -25,9 +25,10 @@ import com.intellij.openapi.progress.ProgressIndicator; import com.intellij.openapi.util.ActionCallback; import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.Conditions; -import com.intellij.util.EventDispatcher; import com.intellij.util.ArrayUtil; +import com.intellij.util.EventDispatcher; import com.intellij.util.concurrency.Semaphore; +import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -38,7 +39,6 @@ import java.awt.*; import java.util.*; import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.CopyOnWriteArrayList; @SuppressWarnings({"SSBasedInspection"}) public class LaterInvocator { @@ -70,7 +70,7 @@ public class LaterInvocator { } } - private static final List ourModalEntities = new CopyOnWriteArrayList(); + private static final List ourModalEntities = ContainerUtil.createEmptyCOWList(); private static final List ourQueue = new ArrayList(); //protected by LOCK private static volatile int ourQueueSkipCount = 0; // optimization private static final Runnable ourFlushQueueRunnable = new FlushQueue(); diff --git a/platform/util/src/com/intellij/util/UniqueResultsQuery.java b/platform/util/src/com/intellij/util/UniqueResultsQuery.java index 4c0c0abf65e6..400516b62d63 100644 --- a/platform/util/src/com/intellij/util/UniqueResultsQuery.java +++ b/platform/util/src/com/intellij/util/UniqueResultsQuery.java @@ -20,10 +20,7 @@ import com.intellij.util.containers.ConcurrentHashSet; import gnu.trove.TObjectHashingStrategy; import org.jetbrains.annotations.NotNull; -import java.util.Collection; -import java.util.Iterator; -import java.util.Set; -import java.util.concurrent.CopyOnWriteArrayList; +import java.util.*; /** * @author max @@ -80,7 +77,7 @@ public class UniqueResultsQuery implements Query { return (Collection)collection; } else { - final CommonProcessors.CollectProcessor processor = new CommonProcessors.CollectProcessor(new CopyOnWriteArrayList()); + final CommonProcessors.CollectProcessor processor = new CommonProcessors.CollectProcessor(Collections.synchronizedList(new ArrayList())); forEach(processor); return processor.getResults(); } diff --git a/platform/util/src/com/intellij/util/containers/ConcurrentMultiMap.java b/platform/util/src/com/intellij/util/containers/ConcurrentMultiMap.java index 6ad007c332ed..91e36164b813 100644 --- a/platform/util/src/com/intellij/util/containers/ConcurrentMultiMap.java +++ b/platform/util/src/com/intellij/util/containers/ConcurrentMultiMap.java @@ -18,7 +18,6 @@ package com.intellij.util.containers; import java.util.Collection; import java.util.Map; -import java.util.concurrent.CopyOnWriteArrayList; /** * @author peter @@ -30,6 +29,6 @@ public class ConcurrentMultiMap extends MultiMap { @Override protected Collection createCollection() { - return new CopyOnWriteArrayList(); + return ContainerUtil.createEmptyCOWList(); } } diff --git a/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/Configuration.java b/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/Configuration.java index 033435004128..bd9017c98a88 100644 --- a/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/Configuration.java +++ b/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/Configuration.java @@ -93,7 +93,7 @@ public final class Configuration implements PersistentStateComponent, M private final Map> myInjections = new ConcurrentFactoryMap>() { @Override protected List create(final String key) { - return new CopyOnWriteArrayList(); + return ContainerUtil.createEmptyCOWList(); } }; private ArrayList myDefaultInjections; diff --git a/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/inject/TemporaryPlacesRegistry.java b/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/inject/TemporaryPlacesRegistry.java index 7302462ab303..a05a3fd82bde 100644 --- a/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/inject/TemporaryPlacesRegistry.java +++ b/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/inject/TemporaryPlacesRegistry.java @@ -19,21 +19,23 @@ package org.intellij.plugins.intelliLang.inject; import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Condition; -import com.intellij.psi.*; +import com.intellij.psi.PsiElement; +import com.intellij.psi.PsiLanguageInjectionHost; +import com.intellij.psi.SmartPointerManager; +import com.intellij.psi.SmartPsiElementPointer; import com.intellij.util.PairProcessor; import com.intellij.util.containers.ContainerUtil; import org.intellij.plugins.intelliLang.Configuration; import java.util.Collections; import java.util.List; -import java.util.concurrent.CopyOnWriteArrayList; /** * @author Gregory.Shrago */ public class TemporaryPlacesRegistry { private final Project myProject; - private final List myTempPlaces = new CopyOnWriteArrayList(); + private final List myTempPlaces = ContainerUtil.createEmptyCOWList(); public static TemporaryPlacesRegistry getInstance(final Project project) { return ServiceManager.getService(project, TemporaryPlacesRegistry.class);