sync collections used in ReferencesSearch

This commit is contained in:
anna
2011-03-30 18:31:21 +02:00
parent 777eb80397
commit 676f00561e
12 changed files with 23 additions and 24 deletions
@@ -404,8 +404,8 @@ public class ExtractMethodProcessor implements MatchProvider {
});
for(PsiClass localClass: localClasses) {
final boolean classExtracted = isExtractedElement(localClass);
final List<PsiElement> extractedReferences = new ArrayList<PsiElement>();
final List<PsiElement> remainingReferences = new ArrayList<PsiElement>();
final List<PsiElement> extractedReferences = Collections.synchronizedList(new ArrayList<PsiElement>());
final List<PsiElement> remainingReferences = Collections.synchronizedList(new ArrayList<PsiElement>());
ReferencesSearch.search(localClass).forEach(new Processor<PsiReference>() {
public boolean process(final PsiReference psiReference) {
final PsiElement element = psiReference.getElement();
@@ -86,8 +86,8 @@ public class InlineLocalHandler extends JavaInlineActionHandler {
}
final PsiClass containingClass = PsiTreeUtil.getParentOfType(local, PsiClass.class);
final List<PsiClass> innerClassesWithUsages = new ArrayList<PsiClass>();
final List<PsiElement> innerClassUsages = new ArrayList<PsiElement>();
final List<PsiClass> innerClassesWithUsages = Collections.synchronizedList(new ArrayList<PsiClass>());
final List<PsiElement> innerClassUsages = Collections.synchronizedList(new ArrayList<PsiElement>());
query.forEach(new Processor<PsiReference>() {
public boolean process(final PsiReference psiReference) {
final PsiElement element = psiReference.getElement();
@@ -40,10 +40,7 @@ import com.intellij.refactoring.util.RefactoringMessageDialog;
import com.intellij.util.Processor;
import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.*;
/**
* @author yole
@@ -74,8 +71,8 @@ public class InlineParameterHandler extends JavaInlineActionHandler {
final Ref<PsiExpression> refInitializer = new Ref<PsiExpression>();
final Ref<PsiExpression> refConstantInitializer = new Ref<PsiExpression>();
final Ref<PsiCallExpression> refMethodCall = new Ref<PsiCallExpression>();
final List<PsiReference> occurrences = new ArrayList<PsiReference>();
final Collection<PsiFile> containingFiles = new HashSet<PsiFile>();
final List<PsiReference> occurrences = Collections.synchronizedList(new ArrayList<PsiReference>());
final Collection<PsiFile> containingFiles = Collections.synchronizedSet(new HashSet<PsiFile>());
containingFiles.add(psiParameter.getContainingFile());
boolean result = ReferencesSearch.search(method).forEach(new Processor<PsiReference>() {
public boolean process(final PsiReference psiReference) {
@@ -407,7 +407,7 @@ public class MoveClassToInnerProcessor extends BaseRefactoringProcessor {
myConflicts = conflicts;
}
public void addConflict(final PsiElement targetElement, final PsiElement sourceElement) {
public synchronized void addConflict(final PsiElement targetElement, final PsiElement sourceElement) {
PsiElement container = ConflictsUtil.getContainer(sourceElement);
if (!myReportedContainers.contains(container)) {
myReportedContainers.add(container);
@@ -560,7 +560,7 @@ public class MoveClassesOrPackagesProcessor extends BaseRefactoringProcessor {
}
}
private void visitMemberReference(final PsiModifierListOwner member, PsiReferenceExpression qualified, final RefactoringUtil.IsDescendantOf descendantOf) {
private synchronized void visitMemberReference(final PsiModifierListOwner member, PsiReferenceExpression qualified, final RefactoringUtil.IsDescendantOf descendantOf) {
if (member.hasModifierProperty(PsiModifier.PACKAGE_LOCAL)) {
visitPackageLocalMemberReference(qualified, member);
} else if (member.hasModifierProperty(PsiModifier.PROTECTED)) {
@@ -27,6 +27,7 @@ import com.intellij.xml.util.XmlUtil;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public abstract class FixableUsagesRefactoringProcessor extends BaseRefactoringProcessor {
@@ -56,7 +57,7 @@ public abstract class FixableUsagesRefactoringProcessor extends BaseRefactoringP
@NotNull
protected final UsageInfo[] findUsages() {
final List<FixableUsageInfo> usages = new ArrayList<FixableUsageInfo>();
final List<FixableUsageInfo> usages = Collections.synchronizedList(new ArrayList<FixableUsageInfo>());
findUsages(usages);
final int numUsages = usages.size();
final FixableUsageInfo[] usageArray = usages.toArray(new FixableUsageInfo[numUsages]);
@@ -33,6 +33,7 @@ import org.jetbrains.annotations.NonNls;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
@@ -254,7 +255,7 @@ public class InlineUtil {
}
public static boolean allUsagesAreTailCalls(final PsiMethod method) {
final List<PsiReference> nonTailCallUsages = new ArrayList<PsiReference>();
final List<PsiReference> nonTailCallUsages = Collections.synchronizedList(new ArrayList<PsiReference>());
boolean result = ProgressManager.getInstance().runProcessWithProgressSynchronously(new Runnable() {
public void run() {
ReferencesSearch.search(method).forEach(new Processor<PsiReference>() {
@@ -55,8 +55,8 @@ public class IdentifierHighlighterPass extends TextEditorHighlightingPass {
private final PsiFile myFile;
private final Editor myEditor;
private final Collection<TextRange> myReadAccessRanges = new ArrayList<TextRange>();
private final Collection<TextRange> myWriteAccessRanges = new ArrayList<TextRange>();
private final Collection<TextRange> myReadAccessRanges = Collections.synchronizedList(new ArrayList<TextRange>());
private final Collection<TextRange> myWriteAccessRanges = Collections.synchronizedList(new ArrayList<TextRange>());
private final int myCaretOffset;
private static final HighlightInfoType ourReadHighlightInfoType = new HighlightInfoType.HighlightInfoTypeImpl(HighlightSeverity.INFORMATION, EditorColors.IDENTIFIER_UNDER_CARET_ATTRIBUTES);
@@ -69,6 +69,7 @@ import org.jetbrains.plugins.groovy.refactoring.GroovyValidationUtil;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import static org.jetbrains.plugins.groovy.intentions.style.parameterToEntry.ConvertParameterToMapEntryIntention.FIRST_PARAMETER_KIND.*;
@@ -447,7 +448,7 @@ public class ConvertParameterToMapEntryIntention extends Intention {
.message("find.method.ro.closure.usages.0", owner instanceof GrClosableBlock ? CLOSURE_CAPTION : METHOD_CAPTION), true) {
public void run(@NotNull final ProgressIndicator indicator) {
final GlobalSearchScope projectScope = GlobalSearchScope.projectScope(getProject());
final Collection<PsiReference> references = new ArrayList<PsiReference>();
final Collection<PsiReference> references = Collections.synchronizedList(new ArrayList<PsiReference>());
final Processor<PsiReference> consumer = new Processor<PsiReference>() {
@Override
public boolean process(PsiReference psiReference) {
@@ -28,6 +28,7 @@ import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrRefere
import org.jetbrains.plugins.groovy.lang.psi.api.statements.params.GrParameter;
import org.jetbrains.plugins.groovy.lang.psi.util.PsiUtil;
import java.util.Collections;
import java.util.LinkedHashSet;
import java.util.Set;
@@ -45,7 +46,7 @@ public class GroovyPresentationUtil {
return builder.append(type.getPresentableText()).append(" ").append(parameter.getName()).toString();
} else {
builder.append(parameter.getName());
final Set<String> structural = new LinkedHashSet<String>();
final Set<String> structural = Collections.synchronizedSet(new LinkedHashSet<String>());
ReferencesSearch.search(parameter).forEach(new Processor<PsiReference>() {
public boolean process(PsiReference ref) {
PsiElement parent = ref.getElement().getParent();
@@ -57,6 +57,7 @@ import org.jetbrains.plugins.groovy.refactoring.NameValidator;
import org.jetbrains.plugins.groovy.refactoring.introduce.field.GrIntroduceFieldHandler;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
@@ -202,7 +203,7 @@ public abstract class GrIntroduceHandlerBase<Settings extends GrIntroduceSetting
}
else {
final List<PsiElement> list = new ArrayList<PsiElement>();
final List<PsiElement> list = Collections.synchronizedList(new ArrayList<PsiElement>());
ReferencesSearch.search(variable, new LocalSearchScope(scope)).forEach(new Processor<PsiReference>() {
@Override
public boolean process(PsiReference psiReference) {
@@ -63,10 +63,7 @@ import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Locale;
import java.util.Set;
import java.util.*;
/**
* @author Anton Katilin
@@ -208,7 +205,7 @@ public final class StringEditorDialog extends DialogWrapper{
}
private static Collection<PsiReference> findPropertyReferences(final Property pproperty, final Module module) {
final Collection<PsiReference> references = new ArrayList<PsiReference>();
final Collection<PsiReference> references = Collections.synchronizedList(new ArrayList<PsiReference>());
ProgressManager.getInstance().runProcessWithProgressSynchronously(
new Runnable() {
public void run() {