diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/buildtool/MavenSyncConsole.kt b/plugins/maven/src/main/java/org/jetbrains/idea/maven/buildtool/MavenSyncConsole.kt
index 31cbe6dd1281..2da97b985f31 100644
--- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/buildtool/MavenSyncConsole.kt
+++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/buildtool/MavenSyncConsole.kt
@@ -259,15 +259,16 @@ class MavenSyncConsole(private val myProject: Project) {
}
private fun createMessageEvent(e: Throwable): MessageEventImpl {
- if (e is CannotStartServerException) {
- val cause = ExceptionUtil.findCause(e, ExecutionException::class.java)
+ val csse = ExceptionUtil.findCause(e, CannotStartServerException::class.java)
+ if (csse != null) {
+ val cause = ExceptionUtil.findCause(csse, ExecutionException::class.java)
if (cause != null) {
return MessageEventImpl(mySyncId, MessageEvent.Kind.ERROR, SyncBundle.message("build.event.title.internal.server.error"),
getExceptionText(cause), getExceptionText(cause))
}
else {
return MessageEventImpl(mySyncId, MessageEvent.Kind.ERROR, SyncBundle.message("build.event.title.internal.server.error"),
- getExceptionText(e), getExceptionText(e))
+ getExceptionText(csse), getExceptionText(csse))
}
}
return MessageEventImpl(mySyncId, MessageEvent.Kind.ERROR, SyncBundle.message("build.event.title.error"),
diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsProcessorReadingTask.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsProcessorReadingTask.java
index e15d757b157f..c91a43df7578 100644
--- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsProcessorReadingTask.java
+++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsProcessorReadingTask.java
@@ -60,18 +60,21 @@ public class MavenProjectsProcessorReadingTask implements MavenProjectsProcessor
MavenEmbeddersManager embeddersManager,
MavenConsole console,
MavenProgressIndicator indicator) throws MavenProcessCanceledException {
- if (myFilesToUpdate == null) {
- checkOrInstallMavenWrapper(project);
- myTree.updateAll(myForce, mySettings, indicator);
- }
- else {
- myTree.delete(myFilesToDelete, mySettings, indicator);
- myTree.update(myFilesToUpdate, myForce, mySettings, indicator);
- }
+ try {
+ if (myFilesToUpdate == null) {
+ checkOrInstallMavenWrapper(project);
+ myTree.updateAll(myForce, mySettings, indicator);
+ }
+ else {
+ myTree.delete(myFilesToDelete, mySettings, indicator);
+ myTree.update(myFilesToUpdate, myForce, mySettings, indicator);
+ }
- mySettings.updateFromMavenConfig(myTree.getRootProjectsFiles());
-
- if (myOnCompletion != null) myOnCompletion.run();
+ mySettings.updateFromMavenConfig(myTree.getRootProjectsFiles());
+ }
+ finally {
+ if (myOnCompletion != null) myOnCompletion.run();
+ }
}
private void checkOrInstallMavenWrapper(Project project) {
diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenWslUtil.kt b/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenWslUtil.kt
index 43f22f2c9f43..8d5782127e4d 100644
--- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenWslUtil.kt
+++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenWslUtil.kt
@@ -28,7 +28,6 @@ import com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable
import com.intellij.openapi.util.io.FileUtil
import com.intellij.openapi.util.text.StringUtil
import com.intellij.ui.navigation.Place
-import com.intellij.util.containers.CollectionFactory
import com.intellij.util.text.VersionComparatorUtil
import org.jetbrains.idea.maven.config.MavenConfig
import org.jetbrains.idea.maven.config.MavenConfigSettings
@@ -36,11 +35,11 @@ import org.jetbrains.idea.maven.execution.MavenRunnerSettings
import org.jetbrains.idea.maven.execution.SyncBundle
import org.jetbrains.idea.maven.project.MavenProjectBundle
import org.jetbrains.idea.maven.project.MavenProjectsManager
+import org.jetbrains.idea.maven.server.CannotStartServerException
import org.jetbrains.idea.maven.server.MavenDistributionsCache
import org.jetbrains.idea.maven.server.MavenServerManager
import org.jetbrains.idea.maven.server.WslMavenDistribution
import org.jetbrains.idea.maven.server.wsl.BuildIssueWslJdk
-import org.jetbrains.idea.maven.wizards.MavenProjectBuilder
import java.io.File
import java.util.function.Function
import java.util.function.Supplier
@@ -119,10 +118,13 @@ object MavenWslUtil : MavenUtil() {
return File(File(directory, CONF_DIR), SETTINGS_XML)
}
-
@JvmStatic
fun WSLDistribution.resolveM2Dir(): File {
- return this.getWindowsFile(File(MavenWslCache.getInstance().wslEnv(this)["HOME"], DOT_M2_DIR))
+ val userHome = MavenWslCache.getInstance().wslEnv(this)["HOME"]
+ if (userHome.isNullOrBlank()) {
+ throw CannotStartServerException(SyncBundle.message("maven.sync.wsl.userhome.cannot.resolve"))
+ }
+ return this.getWindowsFile(File(userHome, DOT_M2_DIR))
}
/**
diff --git a/plugins/maven/src/main/resources/messages/MavenSyncBundle.properties b/plugins/maven/src/main/resources/messages/MavenSyncBundle.properties
index 13c825b27081..2796f7bc5f99 100644
--- a/plugins/maven/src/main/resources/messages/MavenSyncBundle.properties
+++ b/plugins/maven/src/main/resources/messages/MavenSyncBundle.properties
@@ -75,6 +75,7 @@ maven.wrapper.notification.downloading.error.content={0}
The Maven wrapper w
maven.wrapper.notification.downloading.error.action=Re-enable Maven wrapper in settings.
build.event.title.error=Error
build.event.title.internal.server.error=Maven Server Error
+build.event.title.cannot.start.server.error=Cannot start Maven Server
importing.jdk.changed=JDK for importer was changed
importing.jdk.changed.description=JDK for importer {0} not found and was changed to {1}.
Consider Maven settings to change importer JDK
maven.sync.wrapper.http.title=HTTP used to download maven distribution
@@ -93,4 +94,6 @@ maven.sync.wsl.jdk=Maven JDK for importer should be WSL JDK
maven.sync.wsl.jdk.set.to.project=For the correct importing process Maven JDK for importer was run with Project JDK
maven.sync.wsl.jdk.revert.usr=Maven JDK for importer was not found, /usr/bin/java will be used if exists
maven.sync.wsl.jdk.fix=Open Maven Importing settings
+maven.sync.wsl.userhome.cannot.resolve=Cannot resolve $HOME variable on WSL
+
maven.cannot.reconnect=Cannot connect to the Maven process. Try again later. If the problem persists, check the Maven Importing JDK settings and restart IntelliJ IDEA