From 2997f460f66fe71a40ecf2d40ee438e5e301d846 Mon Sep 17 00:00:00 2001 From: Anton Makeev Date: Thu, 12 Jan 2012 17:58:20 +0100 Subject: [PATCH] Maven: do not try to index local repository if it doesn't exist --- .../server/embedder/Maven2ServerIndexerImpl.java | 16 ++++++++++------ .../idea/maven/indices/MavenIndicesTest.java | 7 +++++++ 2 files changed, 17 insertions(+), 6 deletions(-) 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);