diff --git a/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PackageReferenceSet.java b/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PackageReferenceSet.java index 878f7ed4c2f2..b0cabca93e44 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PackageReferenceSet.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PackageReferenceSet.java @@ -18,6 +18,7 @@ package com.intellij.psi.impl.source.resolve.reference.impl.providers; import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.TextRange; +import com.intellij.psi.JavaPsiFacade; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiPackage; import com.intellij.psi.ResolveResult; @@ -29,6 +30,7 @@ import org.jetbrains.annotations.Nullable; import java.util.Collection; import java.util.Collections; +import java.util.Set; /** * @author Dmitry Avdeev @@ -68,4 +70,8 @@ public class PackageReferenceSet extends ReferenceSetBase { } }); } + + public Set getInitialContext() { + return Collections.singleton(JavaPsiFacade.getInstance(getElement().getProject()).findPackage("")); + } } \ No newline at end of file diff --git a/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PsiPackageReference.java b/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PsiPackageReference.java index ff5ef3e04bb7..94827c3a03f5 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PsiPackageReference.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PsiPackageReference.java @@ -38,7 +38,7 @@ public class PsiPackageReference extends PsiPolyVariantReferenceBase @NotNull private Set getContext() { - if (myIndex == 0) return Collections.singleton(JavaPsiFacade.getInstance(getElement().getProject()).findPackage("")); + if (myIndex == 0) return myReferenceSet.getInitialContext(); Set psiPackages = new HashSet(); for (ResolveResult resolveResult : myReferenceSet.getReference(myIndex - 1).multiResolve(false)) { PsiElement psiElement = resolveResult.getElement(); diff --git a/platform/lang-impl/src/com/intellij/codeInsight/daemon/quickFix/CreateFileFix.java b/platform/lang-impl/src/com/intellij/codeInsight/daemon/quickFix/CreateFileFix.java index f62eeef752b2..38b853489878 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/daemon/quickFix/CreateFileFix.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/daemon/quickFix/CreateFileFix.java @@ -28,12 +28,14 @@ import com.intellij.openapi.fileEditor.FileEditorManager; import com.intellij.openapi.fileEditor.TextEditor; import com.intellij.openapi.fileTypes.FileTypeManager; import com.intellij.openapi.project.Project; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VfsUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.*; import com.intellij.psi.codeStyle.CodeStyleManager; import com.intellij.psi.impl.PsiManagerImpl; import com.intellij.psi.impl.file.PsiDirectoryImpl; +import com.intellij.util.ArrayUtil; import com.intellij.util.IncorrectOperationException; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -147,7 +149,7 @@ public class CreateFileFix extends LocalQuickFixAndIntentionActionOnPsiElement { if (newDirectories != null) { try { VfsUtil.createDirectoryIfMissing(myDirectory.getVirtualFile(), newDirectories); - VirtualFile vfsDir = VfsUtil.findRelativeFile(myDirectory.getVirtualFile(), newDirectories); + VirtualFile vfsDir = VfsUtil.findRelativeFile(myDirectory.getVirtualFile(), ArrayUtil.toStringArray(StringUtil.split(newDirectories, "/"))); directory = new PsiDirectoryImpl((PsiManagerImpl)myDirectory.getManager(), vfsDir); } catch (IOException e) {