make AbstractTreeUpdater.addSubtreeToUpdateByElement parameter notnull to avoid NPEs

This commit is contained in:
Alexey Kudravtsev
2018-09-19 13:43:28 +03:00
parent 79c1a1155f
commit 2e7763c2ea
5 changed files with 7 additions and 5 deletions
@@ -237,7 +237,7 @@ public class PackageViewPane extends AbstractProjectViewPSIPane {
}
@Override
public boolean addSubtreeToUpdateByElement(Object element) {
public boolean addSubtreeToUpdateByElement(@NotNull Object element) {
// should convert PsiDirectories into PackageElements
if (element instanceof PsiDirectory) {
PsiDirectory dir = (PsiDirectory)element;
@@ -277,6 +277,7 @@ public class PackageViewPane extends AbstractProjectViewPSIPane {
return addedOk;
}
@NotNull
private Object getTreeElementToUpdateFrom(PsiPackage packageToUpdateFrom, Module module) {
if (packageToUpdateFrom == null || !packageToUpdateFrom.isValid() || "".equals(packageToUpdateFrom.getQualifiedName())) {
return module == null ? myTreeStructure.getRootElement() : module;
@@ -186,7 +186,7 @@ public class ProjectViewPane extends AbstractProjectViewPSIPane {
}
@Override
public boolean addSubtreeToUpdateByElement(Object element) {
public boolean addSubtreeToUpdateByElement(@NotNull Object element) {
if (element instanceof PsiDirectory && !myProject.isDisposed()) {
final PsiDirectory dir = (PsiDirectory)element;
final ProjectTreeStructure treeStructure = (ProjectTreeStructure)myTreeStructure;
@@ -144,7 +144,7 @@ public class AbstractTreeBuilder implements Disposable {
return ui == null ? null : ui.getUpdater();
}
public final boolean addSubtreeToUpdateByElement(Object element) {
public final boolean addSubtreeToUpdateByElement(@NotNull Object element) {
AbstractTreeUpdater updater = getUpdater();
return updater != null && updater.addSubtreeToUpdateByElement(element);
}
@@ -1116,7 +1116,8 @@ public class AbstractTreeUi {
.onSuccess(changes -> {
if (!isValid(descriptor)) {
if (isInStructure(prevElement)) {
getUpdater().addSubtreeToUpdateByElement(getTreeStructure().getParentElement(prevElement));
Object toUpdate = ObjectUtils.notNull(getTreeStructure().getParentElement(prevElement), getTreeStructure().getRootElement());
getUpdater().addSubtreeToUpdateByElement(toUpdate);
return;
}
}
@@ -285,7 +285,7 @@ public class AbstractTreeUpdater implements Disposable, Activatable {
* @deprecated use {@link AbstractTreeBuilder#queueUpdateFrom(Object, boolean)}
*/
@Deprecated
public boolean addSubtreeToUpdateByElement(Object element) {
public boolean addSubtreeToUpdateByElement(@NotNull Object element) {
DefaultMutableTreeNode node = myTreeBuilder.getNodeForElement(element);
if (node != null) {
myTreeBuilder.queueUpdateFrom(element, false);