diff --git a/plugins/maven/maven2-server-impl/src/org/jetbrains/idea/maven/server/embedder/Maven2ServerIndexerImpl.java b/plugins/maven/maven2-server-impl/src/org/jetbrains/idea/maven/server/embedder/Maven2ServerIndexerImpl.java index cd877937884e..9e78892d30a3 100644 --- a/plugins/maven/maven2-server-impl/src/org/jetbrains/idea/maven/server/embedder/Maven2ServerIndexerImpl.java +++ b/plugins/maven/maven2-server-impl/src/org/jetbrains/idea/maven/server/embedder/Maven2ServerIndexerImpl.java @@ -132,12 +132,16 @@ public class Maven2ServerIndexerImpl extends MavenRemoteObject implements MavenS try { if (isLocal(index)) { - indicator.setIndeterminate(true); - try { - myIndexer.scan(index, new MyScanningListener(indicator), false); - } - finally { - indicator.setIndeterminate(false); + File repository = index.getRepository(); + + if (repository != null && repository.exists()) { + indicator.setIndeterminate(true); + try { + myIndexer.scan(index, new MyScanningListener(indicator), false); + } + finally { + indicator.setIndeterminate(false); + } } } else { diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/indices/MavenIndicesTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/indices/MavenIndicesTest.java index b215d88b5623..45ccc391ed81 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/indices/MavenIndicesTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/indices/MavenIndicesTest.java @@ -84,6 +84,13 @@ public class MavenIndicesTest extends MavenIndicesTestCase { assertUnorderedElementsAreEqual(i.getGroupIds(), "junit"); } + public void testCreatingAndUpdatingLocalWhenNoDirectory() throws Exception { + MavenIndex i = myIndices.add("id", myRepositoryHelper.getTestDataPath("do_not_exist"), MavenIndex.Kind.LOCAL); + myIndices.updateOrRepair(i, true, getMavenGeneralSettings(), EMPTY_MAVEN_PROCESS); + + assertUnorderedElementsAreEqual(i.getGroupIds()); + } + public void testCreatingSeveral() throws Exception { MavenIndex i1 = myIndices.add("id1", myRepositoryHelper.getTestDataPath("local1"), MavenIndex.Kind.LOCAL); MavenIndex i2 = myIndices.add("id2", myRepositoryHelper.getTestDataPath("local2"), MavenIndex.Kind.LOCAL);