diff --git a/java/java-indexing-impl/src/com/intellij/psi/impl/search/JavaSourceFilterScope.java b/java/java-indexing-impl/src/com/intellij/psi/impl/search/JavaSourceFilterScope.java index 59c7d6505859..9dcd88a9632e 100644 --- a/java/java-indexing-impl/src/com/intellij/psi/impl/search/JavaSourceFilterScope.java +++ b/java/java-indexing-impl/src/com/intellij/psi/impl/search/JavaSourceFilterScope.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2013 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,13 +30,18 @@ import com.intellij.psi.SdkResolveScopeProvider; import com.intellij.psi.search.DelegatingGlobalSearchScope; import com.intellij.psi.search.GlobalSearchScope; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public class JavaSourceFilterScope extends DelegatingGlobalSearchScope { + @Nullable private final ProjectFileIndex myIndex; public JavaSourceFilterScope(@NotNull final GlobalSearchScope delegate) { super(delegate); - myIndex = ProjectRootManager.getInstance(getProject()).getFileIndex(); + + Project project = getProject(); + myIndex = project != null ? ProjectRootManager.getInstance(project).getFileIndex() + : null; } @Override @@ -45,6 +50,10 @@ public class JavaSourceFilterScope extends DelegatingGlobalSearchScope { return false; } + if (myIndex == null) { + return false; + } + if (JavaClassFileType.INSTANCE == file.getFileType()) { return myIndex.isInLibraryClasses(file); } diff --git a/platform/core-api/src/com/intellij/psi/search/GlobalSearchScope.java b/platform/core-api/src/com/intellij/psi/search/GlobalSearchScope.java index a94a146ba83a..836ad0c5a924 100644 --- a/platform/core-api/src/com/intellij/psi/search/GlobalSearchScope.java +++ b/platform/core-api/src/com/intellij/psi/search/GlobalSearchScope.java @@ -39,7 +39,7 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw private static final Logger LOG = Logger.getInstance("#com.intellij.psi.search.GlobalSearchScope"); @Nullable private final Project myProject; - protected GlobalSearchScope(Project project) { + protected GlobalSearchScope(@Nullable Project project) { myProject = project; } @@ -49,6 +49,7 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw public abstract boolean contains(@NotNull VirtualFile file); + @Nullable @Override public Project getProject() { return myProject; diff --git a/platform/projectModel-api/src/com/intellij/openapi/roots/ProjectRootManager.java b/platform/projectModel-api/src/com/intellij/openapi/roots/ProjectRootManager.java index 8d1ef81ba057..c0ed5c0ba3e1 100644 --- a/platform/projectModel-api/src/com/intellij/openapi/roots/ProjectRootManager.java +++ b/platform/projectModel-api/src/com/intellij/openapi/roots/ProjectRootManager.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2012 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -39,7 +39,7 @@ public abstract class ProjectRootManager implements ModificationTracker { * @param project the project for which the instance is requested. * @return the instance. */ - public static ProjectRootManager getInstance(Project project) { + public static ProjectRootManager getInstance(@NotNull Project project) { final ProjectRootManager service = ServiceManager.getService(project, ProjectRootManager.class); if (service != null) return service; return project.getComponent(ProjectRootManager.class);