EA-33969 - assert: SmartPointerManagerImpl.createSmartPsiElementPointer

This commit is contained in:
anna
2012-02-24 16:04:39 +01:00
parent c67f65287f
commit bbc612206e
3 changed files with 9 additions and 6 deletions
@@ -19,7 +19,6 @@ import com.intellij.openapi.application.ApplicationNamesInfo;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiElement;
import com.intellij.psi.SmartPointerManager;
import com.intellij.psi.SmartPsiElementPointer;
import com.intellij.refactoring.JavaRefactoringSettings;
import com.intellij.refactoring.RefactoringBundle;
@@ -30,9 +29,9 @@ import com.intellij.refactoring.ui.YesNoPreviewUsagesDialog;
* @author dsl
*/
public class ExtractClassUtil {
public static void askAndTurnRefsToSuper(final Project project, PsiClass aClass, final PsiClass aSuperClass) {
final SmartPsiElementPointer classPointer = SmartPointerManager.getInstance(project).createSmartPsiElementPointer(aClass);
final SmartPsiElementPointer interfacePointer = SmartPointerManager.getInstance(project).createSmartPsiElementPointer(aSuperClass);
public static void askAndTurnRefsToSuper(final Project project,
final SmartPsiElementPointer classPointer,
final SmartPsiElementPointer interfacePointer) {
final PsiElement classElement = classPointer.getElement();
final PsiElement interfaceElement = interfacePointer.getElement();
if (classElement instanceof PsiClass && classElement.isValid() && interfaceElement instanceof PsiClass && interfaceElement.isValid()) {
@@ -122,10 +122,12 @@ public class ExtractInterfaceHandler implements RefactoringActionHandler, Elemen
}
if (anInterface != null) {
final SmartPsiElementPointer<PsiClass> classPointer = SmartPointerManager.getInstance(myProject).createSmartPsiElementPointer(myClass);
final SmartPsiElementPointer<PsiClass> interfacePointer = SmartPointerManager.getInstance(myProject).createSmartPsiElementPointer(anInterface);
final Runnable turnRefsToSuperRunnable = new Runnable() {
@Override
public void run() {
ExtractClassUtil.askAndTurnRefsToSuper(myProject, myClass, anInterface);
ExtractClassUtil.askAndTurnRefsToSuper(myProject, classPointer, interfacePointer);
}
};
SwingUtilities.invokeLater(turnRefsToSuperRunnable);
@@ -165,9 +165,11 @@ public class ExtractSuperclassHandler implements RefactoringActionHandler, Extra
// ask whether to search references to subclass and turn them into refs to superclass if possible
if (superclass != null) {
final SmartPsiElementPointer<PsiClass> classPointer = SmartPointerManager.getInstance(project).createSmartPsiElementPointer(subclass);
final SmartPsiElementPointer<PsiClass> interfacePointer = SmartPointerManager.getInstance(project).createSmartPsiElementPointer(superclass);
final Runnable turnRefsToSuperRunnable = new Runnable() {
public void run() {
ExtractClassUtil.askAndTurnRefsToSuper(project, subclass, superclass);
ExtractClassUtil.askAndTurnRefsToSuper(project, classPointer, interfacePointer);
}
};
SwingUtilities.invokeLater(turnRefsToSuperRunnable);