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>() {