mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
instantiate ConcurrentHashSet via factory only
This commit is contained in:
@@ -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
|
||||
|
||||
+4
-2
@@ -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;
|
||||
|
||||
+1
-2
@@ -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);
|
||||
|
||||
+8
-6
@@ -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();
|
||||
|
||||
+2
-2
@@ -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;
|
||||
|
||||
+1
-2
@@ -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();
|
||||
|
||||
+2
-2
@@ -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<?>>();
|
||||
|
||||
+1
-2
@@ -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;
|
||||
|
||||
+2
-3
@@ -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
|
||||
|
||||
+1
-2
@@ -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) {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user