EA-96610 - NPE: IntroduceConstantDialog.getEffectiveVisibility

This commit is contained in:
Anna.Kozlova
2017-02-10 10:04:15 +01:00
parent 696cbf6b26
commit a3e78bee41
2 changed files with 5 additions and 4 deletions
@@ -130,7 +130,7 @@ public class InplaceIntroduceConstantPopup extends AbstractInplaceIntroduceField
initialVisibility = PsiModifier.PUBLIC;
}
else {
String effectiveVisibility = IntroduceConstantDialog.getEffectiveVisibility(initialVisibility, myOccurrences, myParentClass);
String effectiveVisibility = IntroduceConstantDialog.getEffectiveVisibility(initialVisibility, myOccurrences, myParentClass, myProject);
if (effectiveVisibility != null) {
return effectiveVisibility;
}
@@ -387,7 +387,7 @@ class IntroduceConstantDialog extends DialogWrapper {
else {
UIUtil.setEnabled(myVisibilityPanel, true, true);
// exclude all modifiers not visible from all occurrences
String effectiveVisibility = getEffectiveVisibility(getFieldVisibility(), myOccurrences, myTargetClass);
String effectiveVisibility = getEffectiveVisibility(getFieldVisibility(), myOccurrences, myTargetClass, myProject);
if (effectiveVisibility != null) {
myVPanel.setVisibility(effectiveVisibility);
}
@@ -396,14 +396,15 @@ class IntroduceConstantDialog extends DialogWrapper {
public static String getEffectiveVisibility(String initialVisibility,
PsiExpression[] occurrences,
PsiClass targetClass) {
PsiClass targetClass,
Project project) {
final ArrayList<String> visible = new ArrayList<>();
visible.add(PsiModifier.PRIVATE);
visible.add(PsiModifier.PROTECTED);
visible.add(PsiModifier.PACKAGE_LOCAL);
visible.add(PsiModifier.PUBLIC);
for (PsiExpression occurrence : occurrences) {
final PsiManager psiManager = targetClass.getManager();
final PsiManager psiManager = PsiManager.getInstance(project);
for (Iterator<String> iterator = visible.iterator(); iterator.hasNext();) {
String modifier = iterator.next();