instantiate ConcurrentHashSet via factory only

This commit is contained in:
Alexey Kudravtsev
2014-11-17 14:55:47 +03:00
parent ea5e01153a
commit 6a98f8aee0
24 changed files with 75 additions and 58 deletions
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2012 JetBrains s.r.o.
* Copyright 2000-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,7 +16,7 @@
package com.intellij.compiler.server;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.util.containers.ConcurrentHashSet;
import com.intellij.util.containers.ContainerUtil;
import io.netty.channel.Channel;
import io.netty.channel.ChannelHandler;
import io.netty.channel.ChannelHandlerContext;
@@ -44,7 +44,7 @@ class BuildMessageDispatcher extends SimpleChannelInboundHandlerAdapter<CmdlineR
private static final AttributeKey<SessionData> SESSION_DATA = AttributeKey.valueOf("BuildMessageDispatcher.sessionData");
private final Map<UUID, SessionData> mySessionDescriptors = new ConcurrentHashMap<UUID, SessionData>(16, 0.75f, 1);
private final Set<UUID> myCanceledSessions = new ConcurrentHashSet<UUID>();
private final Set<UUID> myCanceledSessions = ContainerUtil.newConcurrentSet();
public void registerBuildMessageHandler(@NotNull final RequestFuture<? extends BuilderMessageHandler> future, @Nullable CmdlineRemoteProto.Message.ControllerMessage params) {
final BuilderMessageHandler wrappedHandler = new DelegatingMessageHandler() {
@@ -33,7 +33,6 @@ import com.intellij.psi.impl.source.tree.AstBufferUtil;
import com.intellij.util.NullableFunction;
import com.intellij.util.PairProcessor;
import com.intellij.util.WalkingState;
import com.intellij.util.containers.ConcurrentHashSet;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.containers.FactoryMap;
import gnu.trove.TObjectHashingStrategy;
@@ -191,7 +190,7 @@ public class SliceLeafAnalyzer {
@Override
protected Collection<PsiElement> create(SliceNode key) {
return new ConcurrentHashSet<PsiElement>(LEAF_ELEMENT_EQUALITY);
return ContainerUtil.newConcurrentSet(LEAF_ELEMENT_EQUALITY);
}
};
}
@@ -24,7 +24,6 @@ import com.intellij.psi.*;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.psi.tree.IElementType;
import com.intellij.util.Processor;
import com.intellij.util.containers.ConcurrentHashSet;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.containers.HashMap;
import gnu.trove.THashMap;
@@ -1043,7 +1042,7 @@ public class TypeConversionUtil {
return getMaybeSuperClassSubstitutor(superClassCandidate, derivedClassCandidate, derivedSubstitutor, null);
}
private static final Set<String> ourReportedSuperClassSubstitutorExceptions = new ConcurrentHashSet<String>();
private static final Set<String> ourReportedSuperClassSubstitutorExceptions = ContainerUtil.newConcurrentSet();
/**
* Calculates substitutor that binds type parameters in <code>superClass</code> with
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2012 JetBrains s.r.o.
* Copyright 2000-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,7 +24,6 @@ import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.util.SmartList;
import com.intellij.util.concurrency.BoundedTaskExecutor;
import com.intellij.util.containers.ConcurrentHashSet;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.containers.MultiMap;
import com.intellij.util.io.MappingFailedException;
@@ -1230,7 +1229,7 @@ public class IncProjectBuilder {
private static CompileContext createContextWrapper(final CompileContext delegate) {
final ClassLoader loader = delegate.getClass().getClassLoader();
final UserDataHolderBase localDataHolder = new UserDataHolderBase();
final Set<Object> deletedKeysSet = new ConcurrentHashSet<Object>();
final Set<Object> deletedKeysSet = ContainerUtil.newConcurrentSet();
final Class<UserDataHolder> dataHolderInterface = UserDataHolder.class;
final Class<MessageHandler> messageHandlerInterface = MessageHandler.class;
return (CompileContext)Proxy.newProxyInstance(loader, new Class[]{CompileContext.class}, new InvocationHandler() {
@@ -23,7 +23,7 @@ import com.intellij.openapi.util.Condition;
import com.intellij.openapi.util.Conditions;
import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.util.UserDataHolderBase;
import com.intellij.util.containers.ConcurrentHashSet;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.messages.MessageBus;
import com.intellij.util.messages.MessageBusFactory;
import com.intellij.util.pico.IdeaPicoContainer;
@@ -46,7 +46,7 @@ public class MockComponentManager extends UserDataHolderBase implements Componen
public MockComponentManager(@Nullable PicoContainer parent, @NotNull Disposable parentDisposable) {
myPicoContainer = new IdeaPicoContainer(parent) {
private final Set<Object> myDisposableComponents = new ConcurrentHashSet<Object>();
private final Set<Object> myDisposableComponents = ContainerUtil.newConcurrentSet();
@Override
@Nullable
@@ -23,12 +23,14 @@ import com.intellij.openapi.progress.ProcessCanceledException;
import com.intellij.openapi.progress.ProgressIndicator;
import com.intellij.openapi.progress.ProgressManager;
import com.intellij.openapi.util.UserDataHolderBase;
import com.intellij.util.containers.ConcurrentHashSet;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.containers.DoubleArrayList;
import com.intellij.util.containers.Stack;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import java.util.Set;
public class AbstractProgressIndicatorBase extends UserDataHolderBase implements ProgressIndicatorStacked {
private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.progress.util.ProgressIndicatorBase");
@@ -69,7 +71,7 @@ public class AbstractProgressIndicatorBase extends UserDataHolderBase implements
myRunning = true;
}
private static final ConcurrentHashSet<Class> ourReportedReuseExceptions = new ConcurrentHashSet<Class>(2);
private static final Set<Class> ourReportedReuseExceptions = ContainerUtil.newConcurrentSet();
protected boolean isReuseable() {
return false;
@@ -47,7 +47,6 @@ import com.intellij.util.Processor;
import com.intellij.util.SmartList;
import com.intellij.util.SystemProperties;
import com.intellij.util.concurrency.Semaphore;
import com.intellij.util.containers.ConcurrentHashSet;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.messages.MessageBus;
import org.jetbrains.annotations.NonNls;
@@ -67,7 +66,7 @@ public abstract class PsiDocumentManagerBase extends PsiDocumentManager implemen
protected final Project myProject;
private final PsiManager myPsiManager;
private final DocumentCommitProcessor myDocumentCommitProcessor;
protected final Set<Document> myUncommittedDocuments = new ConcurrentHashSet<Document>();
protected final Set<Document> myUncommittedDocuments = ContainerUtil.newConcurrentSet();
private final Map<Document, CharSequence> myLastCommittedTexts = ContainerUtil.newConcurrentMap();
private volatile boolean myIsCommitInProgress;
@@ -20,7 +20,6 @@ import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskId;
import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskNotificationEvent;
import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskNotificationListener;
import com.intellij.openapi.externalSystem.service.notification.ExternalSystemProgressNotificationManager;
import com.intellij.util.containers.ConcurrentHashSet;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
@@ -56,7 +55,7 @@ public class ExternalSystemProgressNotificationManagerImpl extends RemoteObject
ids = myListeners.get(listener);
}
else {
ids = myListeners.putIfAbsent(listener, new ConcurrentHashSet<ExternalSystemTaskId>());
ids = myListeners.putIfAbsent(listener, ContainerUtil.<ExternalSystemTaskId>newConcurrentSet());
}
}
return ids.add(taskId);
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2013 JetBrains s.r.o.
* Copyright 2000-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -39,7 +39,7 @@ import com.intellij.openapi.util.Iconable;
import com.intellij.psi.*;
import com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil;
import com.intellij.psi.util.PsiUtilBase;
import com.intellij.util.containers.ConcurrentHashSet;
import com.intellij.util.containers.ContainerUtil;
import gnu.trove.THashSet;
import gnu.trove.TObjectHashingStrategy;
import org.jetbrains.annotations.NotNull;
@@ -54,10 +54,12 @@ import java.util.*;
class IntentionListStep implements ListPopupStep<IntentionActionWithTextCaching>, SpeedSearchFilter<IntentionActionWithTextCaching> {
private static final Logger LOG = Logger.getInstance("#com.intellij.codeInsight.intention.impl.IntentionListStep");
private final Set<IntentionActionWithTextCaching> myCachedIntentions = new ConcurrentHashSet<IntentionActionWithTextCaching>(ACTION_TEXT_AND_CLASS_EQUALS);
private final Set<IntentionActionWithTextCaching> myCachedErrorFixes = new ConcurrentHashSet<IntentionActionWithTextCaching>(ACTION_TEXT_AND_CLASS_EQUALS);
private final Set<IntentionActionWithTextCaching> myCachedInspectionFixes = new ConcurrentHashSet<IntentionActionWithTextCaching>(ACTION_TEXT_AND_CLASS_EQUALS);
private final Set<IntentionActionWithTextCaching> myCachedGutters = new ConcurrentHashSet<IntentionActionWithTextCaching>(ACTION_TEXT_AND_CLASS_EQUALS);
private final Set<IntentionActionWithTextCaching> myCachedIntentions =
ContainerUtil.newConcurrentSet(ACTION_TEXT_AND_CLASS_EQUALS);
private final Set<IntentionActionWithTextCaching> myCachedErrorFixes =
ContainerUtil.newConcurrentSet(ACTION_TEXT_AND_CLASS_EQUALS);
private final Set<IntentionActionWithTextCaching> myCachedInspectionFixes = ContainerUtil.newConcurrentSet(ACTION_TEXT_AND_CLASS_EQUALS);
private final Set<IntentionActionWithTextCaching> myCachedGutters = ContainerUtil.newConcurrentSet(ACTION_TEXT_AND_CLASS_EQUALS);
private final IntentionManagerSettings mySettings;
@Nullable
private final IntentionHintComponent myIntentionHintComponent;
@@ -27,7 +27,6 @@ import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiFile;
import com.intellij.util.SequentialModalProgressTask;
import com.intellij.util.SequentialTask;
import com.intellij.util.containers.ConcurrentHashSet;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.ui.UIUtil;
import org.jetbrains.annotations.NotNull;
@@ -139,7 +138,7 @@ public class FormattingProgressTask extends SequentialModalProgressTask implemen
private Collection<Runnable> getCallbacks(@NotNull EventType eventType) {
Collection<Runnable> result = myCallbacks.get(eventType);
if (result == null) {
Collection<Runnable> candidate = myCallbacks.putIfAbsent(eventType, result = new ConcurrentHashSet<Runnable>());
Collection<Runnable> candidate = myCallbacks.putIfAbsent(eventType, result = ContainerUtil.newConcurrentSet());
if (candidate != null) {
result = candidate;
}
@@ -69,7 +69,6 @@ import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.psi.stubs.SerializationManagerEx;
import com.intellij.util.*;
import com.intellij.util.concurrency.Semaphore;
import com.intellij.util.containers.ConcurrentHashSet;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.io.*;
import com.intellij.util.io.DataOutputStream;
@@ -129,7 +128,7 @@ public class FileBasedIndexImpl extends FileBasedIndex {
private final FileDocumentManager myFileDocumentManager;
private final FileTypeManagerImpl myFileTypeManager;
private final SerializationManagerEx mySerializationManagerEx;
private final ConcurrentHashSet<ID<?, ?>> myUpToDateIndicesForUnsavedOrTransactedDocuments = new ConcurrentHashSet<ID<?, ?>>();
private final Set<ID<?, ?>> myUpToDateIndicesForUnsavedOrTransactedDocuments = ContainerUtil.newConcurrentSet();
private volatile SmartFMap<Document, PsiFile> myTransactionMap = SmartFMap.emptyMap();
@Nullable private final String myConfigPath;
@@ -139,7 +138,7 @@ public class FileBasedIndexImpl extends FileBasedIndex {
private volatile int myLocalModCount;
private volatile int myFilesModCount;
private final AtomicInteger myUpdatingFiles = new AtomicInteger();
private final ConcurrentHashSet<Project> myProjectsBeingUpdated = new ConcurrentHashSet<Project>();
private final Set<Project> myProjectsBeingUpdated = ContainerUtil.newConcurrentSet();
@SuppressWarnings({"FieldCanBeLocal", "UnusedDeclaration"}) private volatile boolean myInitialized;
// need this variable for memory barrier
@@ -1874,7 +1873,7 @@ public class FileBasedIndexImpl extends FileBasedIndex {
}
private final class ChangedFilesCollector extends VirtualFileAdapter implements BulkFileListener {
private final Set<VirtualFile> myFilesToUpdate = new ConcurrentHashSet<VirtualFile>();
private final Set<VirtualFile> myFilesToUpdate = ContainerUtil.newConcurrentSet();
private final Queue<InvalidationTask> myFutureInvalidations = new ConcurrentLinkedQueue<InvalidationTask>();
private final ManagingFS myManagingFS = ManagingFS.getInstance();
@@ -67,8 +67,8 @@ import com.intellij.ui.components.JBScrollPane;
import com.intellij.util.Function;
import com.intellij.util.PairProcessor;
import com.intellij.util.ThrowableRunnable;
import com.intellij.util.containers.ConcurrentHashSet;
import com.intellij.util.containers.ConcurrentWeakValueHashMap;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.messages.MessageBus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -94,7 +94,7 @@ public class FileDocumentManagerImpl extends FileDocumentManager implements Virt
private static final Key<VirtualFile> FILE_KEY = Key.create("FILE_KEY");
private static final Key<Boolean> MUST_RECOMPUTE_FILE_TYPE = Key.create("Must recompute file type");
private final Set<Document> myUnsavedDocuments = new ConcurrentHashSet<Document>();
private final Set<Document> myUnsavedDocuments = ContainerUtil.newConcurrentSet();
private final Map<VirtualFile, Document> myDocuments = new ConcurrentWeakValueHashMap<VirtualFile, Document>();
private final MessageBus myBus;
@@ -34,7 +34,6 @@ import com.intellij.openapi.wm.WindowManager;
import com.intellij.openapi.wm.ex.ProgressIndicatorEx;
import com.intellij.psi.PsiLock;
import com.intellij.ui.SystemNotifications;
import com.intellij.util.containers.ConcurrentHashSet;
import com.intellij.util.containers.ConcurrentLongObjectMap;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.containers.SmartHashSet;
@@ -70,7 +69,7 @@ public class ProgressManagerImpl extends ProgressManager implements Disposable {
// the active indicator for the thread id
private static final ConcurrentLongObjectMap<ProgressIndicator> currentIndicators = ContainerUtil.createConcurrentLongObjectMap();
// threads which are running under canceled indicator
static final Set<Thread> threadsUnderCanceledIndicator = new ConcurrentHashSet<Thread>();
static final Set<Thread> threadsUnderCanceledIndicator = ContainerUtil.newConcurrentSet();
// active (i.e. which have executeProcessUnderProgress() method running) indicators which are not inherited from StandardProgressIndicator.
// for them an extra processing thread (see myCheckCancelledFuture) has to be run to call their non-standard checkCanceled() method
@@ -25,7 +25,7 @@ import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.newvfs.VfsImplUtil;
import com.intellij.util.Function;
import com.intellij.util.SystemProperties;
import com.intellij.util.containers.ConcurrentHashSet;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -39,7 +39,7 @@ public class JarFileSystemImpl extends JarFileSystem {
public JarFileSystemImpl() {
boolean noCopy = SystemProperties.getBooleanProperty("idea.jars.nocopy", !SystemInfo.isWindows);
myNoCopyJarPaths = noCopy ? null : new ConcurrentHashSet<String>(FileUtil.PATH_HASHING_STRATEGY);
myNoCopyJarPaths = noCopy ? null : ContainerUtil.newConcurrentSet(FileUtil.PATH_HASHING_STRATEGY);
// to prevent platform .jar files from copying
boolean runningFromDist = new File(PathManager.getLibPath(), "openapi.jar").exists();
@@ -18,7 +18,7 @@ package com.intellij.openapi.vfs.tracker;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.vfs.*;
import com.intellij.util.containers.ConcurrentHashSet;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -178,7 +178,7 @@ public class VirtualFileTrackerImpl implements VirtualFileTracker {
Set<VirtualFileListener> listeners = map.get(fileUrl);
if (listeners == null) {
listeners = new ConcurrentHashSet<VirtualFileListener>();
listeners = ContainerUtil.newConcurrentSet();
map.put(fileUrl, listeners);
}
return listeners;
@@ -34,7 +34,6 @@ import com.intellij.openapi.vfs.newvfs.events.VFileEvent;
import com.intellij.util.CollectionQuery;
import com.intellij.util.EmptyQuery;
import com.intellij.util.Query;
import com.intellij.util.containers.ConcurrentHashSet;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.containers.MultiMap;
import gnu.trove.TObjectIntHashMap;
@@ -64,7 +63,7 @@ public class RootIndex {
};
private final Map<String, List<VirtualFile>> myDirectoriesByPackageNameCache = ContainerUtil.newConcurrentMap();
private final Set<String> myNonExistentPackages = new ConcurrentHashSet<String>();
private final Set<String> myNonExistentPackages = ContainerUtil.newConcurrentSet();
private final InfoCache myInfoCache;
private final List<JpsModuleSourceRootType<?>> myRootTypes = ContainerUtil.newArrayList();
private final TObjectIntHashMap<JpsModuleSourceRootType<?>> myRootTypeId = new TObjectIntHashMap<JpsModuleSourceRootType<?>>();
@@ -19,7 +19,6 @@ import com.intellij.openapi.util.text.StringUtil;
import com.intellij.util.Consumer;
import com.intellij.util.EventDispatcher;
import com.intellij.util.SmartList;
import com.intellij.util.containers.ConcurrentHashSet;
import com.intellij.util.containers.ContainerUtil;
import gnu.trove.TObjectHashingStrategy;
import org.jetbrains.annotations.NotNull;
@@ -31,7 +30,7 @@ import java.util.Set;
import java.util.concurrent.ConcurrentMap;
public abstract class BreakpointManagerBase<T extends BreakpointBase<?>> implements BreakpointManager {
protected final Set<T> breakpoints = new ConcurrentHashSet<T>();
protected final Set<T> breakpoints = ContainerUtil.newConcurrentSet();
protected final ConcurrentMap<T, T> breakpointDuplicationByTarget =
ContainerUtil.newConcurrentMap(new TObjectHashingStrategy<T>() {
@Override
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2012 JetBrains s.r.o.
* Copyright 2000-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,16 +24,16 @@ import java.util.Iterator;
import java.util.Set;
import java.util.concurrent.ConcurrentMap;
public class ConcurrentHashSet<K> implements Set<K> {
class ConcurrentHashSet<K> implements Set<K> {
private final ConcurrentMap<K, Boolean> map;
public ConcurrentHashSet(int initialCapacity) {
ConcurrentHashSet(int initialCapacity) {
map = ContainerUtil.newConcurrentMap(initialCapacity);
}
public ConcurrentHashSet() {
ConcurrentHashSet() {
map = ContainerUtil.newConcurrentMap();
}
public ConcurrentHashSet(@NotNull TObjectHashingStrategy<K> hashingStrategy) {
ConcurrentHashSet(@NotNull TObjectHashingStrategy<K> hashingStrategy) {
map = ContainerUtil.newConcurrentMap(hashingStrategy);
}
@@ -363,6 +363,18 @@ public class ContainerUtil extends ContainerUtilRt {
return ContainerUtilRt.newTreeSet(comparator);
}
@NotNull
@Contract(pure=true)
public static <T> Set<T> newConcurrentSet() {
return new ConcurrentHashSet<T>();
}
@NotNull
@Contract(pure=true)
public static <T> Set<T> newConcurrentSet(@NotNull TObjectHashingStrategy<T> hashStrategy) {
return new ConcurrentHashSet<T>(hashStrategy);
}
@NotNull
@Contract(pure=true)
public static <K, V> ConcurrentMap<K, V> newConcurrentMap() {
@@ -297,7 +297,7 @@ public class MultiMap<K, V> implements Serializable {
@NotNull
@Override
protected Collection<V> createCollection() {
return new ConcurrentHashSet<V>();
return ContainerUtil.newConcurrentSet();
}
@NotNull
@@ -1,3 +1,18 @@
/*
* Copyright 2000-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.intellij.vcs.log.impl;
import com.intellij.openapi.Disposable;
@@ -19,7 +34,6 @@ import com.intellij.ui.content.Content;
import com.intellij.ui.content.ContentManagerAdapter;
import com.intellij.ui.content.ContentManagerEvent;
import com.intellij.util.Consumer;
import com.intellij.util.containers.ConcurrentHashSet;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.containers.MultiMap;
import com.intellij.util.ui.UIUtil;
@@ -162,7 +176,7 @@ public class VcsLogManager implements Disposable {
@NotNull private final String myTabName;
@NotNull private final MyRefreshPostponedEventsListener myPostponedEventsListener;
@NotNull private final Set<VirtualFile> myRootsToRefresh = new ConcurrentHashSet<VirtualFile>();
@NotNull private final Set<VirtualFile> myRootsToRefresh = ContainerUtil.newConcurrentSet();
public PostponeableLogRefresher(@NotNull Project project, @NotNull VcsLogDataHolder dataHolder, @NotNull String contentTabName) {
myDataHolder = dataHolder;
@@ -36,7 +36,6 @@ import com.intellij.psi.util.PsiModificationTracker;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.util.PairProcessor;
import com.intellij.util.Processor;
import com.intellij.util.containers.ConcurrentHashSet;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -89,7 +88,7 @@ public class GroovyConstructorUsagesSearcher extends QueryExecutorBase<PsiRefere
SearchScope onlyGroovy = GroovyScopeUtil.restrictScopeToGroovyFiles(searchScope, GroovyScopeUtil.getEffectiveScope(constructor));
Set<PsiClass> processed = collector.getSearchSession().getUserData(LITERALLY_CONSTRUCTED_CLASSES);
if (processed == null) {
collector.getSearchSession().putUserData(LITERALLY_CONSTRUCTED_CLASSES, processed = new ConcurrentHashSet<PsiClass>());
collector.getSearchSession().putUserData(LITERALLY_CONSTRUCTED_CLASSES, processed = ContainerUtil.newConcurrentSet());
}
if (!processed.add(clazz)) return;
@@ -143,7 +142,7 @@ public class GroovyConstructorUsagesSearcher extends QueryExecutorBase<PsiRefere
final boolean searchGppCalls,
final Processor<GrNewExpression> newExpressionProcessor,
final LiteralConstructorSearcher literalProcessor) {
final Set<PsiAnchor> processedMethods = new ConcurrentHashSet<PsiAnchor>();
final Set<PsiAnchor> processedMethods = ContainerUtil.newConcurrentSet();
ReferencesSearch.searchOptimized(clazz, scope, true, collector, true, new PairProcessor<PsiReference, SearchRequestCollector>() {
@Override
@@ -24,7 +24,6 @@ import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiRecursiveElementWalkingVisitor;
import com.intellij.psi.PsiType;
import com.intellij.psi.util.*;
import com.intellij.util.containers.ConcurrentHashSet;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -376,7 +375,7 @@ public class TypeInferenceHelper {
final GrControlFlowOwner scope;
final Instruction[] flow;
final AtomicReference<List<TypeDfaState>> varTypes;
final ConcurrentHashSet<Instruction> tooComplex = new ConcurrentHashSet<Instruction>();
final Set<Instruction> tooComplex = ContainerUtil.newConcurrentSet();
InferenceCache(final GrControlFlowOwner scope) {
this.scope = scope;
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2012 JetBrains s.r.o.
* Copyright 2000-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -43,7 +43,6 @@ import com.intellij.ui.ColoredTreeCellRenderer;
import com.intellij.util.ArrayUtil;
import com.intellij.util.EventDispatcher;
import com.intellij.util.Function;
import com.intellij.util.containers.ConcurrentHashSet;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.containers.Convertor;
import com.intellij.util.containers.MultiMap;
@@ -136,7 +135,7 @@ public class TaskManagerImpl extends TaskManager implements ProjectComponent, Pe
private final List<TaskRepository> myRepositories = new ArrayList<TaskRepository>();
private final EventDispatcher<TaskListener> myDispatcher = EventDispatcher.create(TaskListener.class);
private Set<TaskRepository> myBadRepositories = new ConcurrentHashSet<TaskRepository>();
private Set<TaskRepository> myBadRepositories = ContainerUtil.newConcurrentSet();
public TaskManagerImpl(Project project, WorkingContextManager contextManager, ChangeListManager changeListManager) {