EA-70816 - NPE: ProjectImportProvider.canImport

This commit is contained in:
Dmitry Avdeev
2015-09-09 12:51:36 +03:00
parent 349340e085
commit 5070d8247f
4 changed files with 11 additions and 5 deletions
@@ -177,7 +177,7 @@ public class ImportModuleAction extends AnAction {
@Nullable
public static AddModuleWizard createImportWizard(@Nullable final Project project,
@Nullable Component dialogParent,
final VirtualFile file,
@NotNull final VirtualFile file,
ProjectImportProvider... providers) {
List<ProjectImportProvider> available = ContainerUtil.filter(providers, new Condition<ProjectImportProvider>() {
@Override
@@ -18,6 +18,7 @@ package com.intellij.ide.util.projectWizard;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.projectImport.ProjectImportProvider;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
@@ -31,7 +32,7 @@ public class ModuleImportProvider extends ProjectImportProvider {
}
@Override
public boolean canImport(VirtualFile fileOrDirectory, Project project) {
public boolean canImport(@NotNull VirtualFile fileOrDirectory, Project project) {
return project != null && !fileOrDirectory.isDirectory() && "iml".equals(fileOrDirectory.getExtension());
}
@@ -17,12 +17,14 @@ package com.intellij.openapi.vcs.checkout;
import com.intellij.ide.actions.ImportModuleAction;
import com.intellij.ide.util.newProjectWizard.AddModuleWizard;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.Messages;
import com.intellij.openapi.vcs.VcsBundle;
import com.intellij.openapi.vfs.LocalFileSystem;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.projectImport.ProjectImportProvider;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.io.File;
@@ -31,14 +33,17 @@ import java.io.File;
* Proposes to create a new project from the checked out sources.
*/
public class NewProjectCheckoutListener implements CheckoutListener {
private static final Logger LOG = Logger.getInstance(NewProjectCheckoutListener.class);
@Override
public boolean processCheckedOutDirectory(Project project, File directory) {
VirtualFile file = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(directory);
LOG.assertTrue(file != null, "Can't find " + directory);
int rc = Messages.showYesNoDialog(project, VcsBundle.message("checkout.create.project.prompt",
ProjectCheckoutListener.getProductNameWithArticle(),
directory.getAbsolutePath()),
VcsBundle.message("checkout.title"), Messages.getQuestionIcon());
if (rc == Messages.YES) {
VirtualFile file = LocalFileSystem.getInstance().findFileByIoFile(directory);
AddModuleWizard wizard = createImportWizard(file);
if (wizard == null) return false;
if (wizard.showAndGet()) {
@@ -50,7 +55,7 @@ public class NewProjectCheckoutListener implements CheckoutListener {
}
@Nullable
protected AddModuleWizard createImportWizard(VirtualFile file) {
protected AddModuleWizard createImportWizard(@NotNull VirtualFile file) {
return ImportModuleAction.createImportWizard(null, null, file, ProjectImportProvider.PROJECT_IMPORT_PROVIDER.getExtensions());
}
@@ -61,7 +61,7 @@ public abstract class ProjectImportProvider {
return getBuilder().getIcon();
}
public boolean canImport(VirtualFile fileOrDirectory, @Nullable Project project) {
public boolean canImport(@NotNull VirtualFile fileOrDirectory, @Nullable Project project) {
if (fileOrDirectory.isDirectory()) {
return true;
}