Nicer diagnostics for WSL to Windows connections blocked by firewall (IDEA-262876)

GitOrigin-RevId: 98d834398cedb74e2dfa7493f09bca6bbd2f539b
This commit is contained in:
Dmitry Jemerov
2021-03-18 18:04:53 +01:00
committed by intellij-monorepo-bot
parent 0d2b9594cb
commit 6bd72fd784
3 changed files with 15 additions and 8 deletions

View File

@@ -11,6 +11,7 @@ import com.intellij.compiler.impl.ExcludeFromCompileAction;
import com.intellij.compiler.impl.ExitStatus; import com.intellij.compiler.impl.ExitStatus;
import com.intellij.execution.ExecutionBundle; import com.intellij.execution.ExecutionBundle;
import com.intellij.execution.filters.RegexpFilter; import com.intellij.execution.filters.RegexpFilter;
import com.intellij.execution.filters.UrlFilter;
import com.intellij.icons.AllIcons; import com.intellij.icons.AllIcons;
import com.intellij.ide.IdeBundle; import com.intellij.ide.IdeBundle;
import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.actionSystem.*;
@@ -85,6 +86,7 @@ public class BuildOutputService implements BuildViewService {
.withAction(new CompilerPropertiesAction()) .withAction(new CompilerPropertiesAction())
.withExecutionFilter(new ModuleLinkFilter(myProject)) .withExecutionFilter(new ModuleLinkFilter(myProject))
.withExecutionFilter(new RegexpFilter(myProject, FILE_PATH_MACROS + ":" + LINE_MACROS + ":" + COLUMN_MACROS)) .withExecutionFilter(new RegexpFilter(myProject, FILE_PATH_MACROS + ":" + LINE_MACROS + ":" + COLUMN_MACROS))
.withExecutionFilter(new UrlFilter(myProject))
.withContextAction(node -> { .withContextAction(node -> {
return new ExcludeFromCompileAction(myProject) { return new ExcludeFromCompileAction(myProject) {
@Override @Override

View File

@@ -101,8 +101,7 @@ import org.jetbrains.jps.incremental.Utils;
import org.jetbrains.jps.incremental.storage.ProjectStamps; import org.jetbrains.jps.incremental.storage.ProjectStamps;
import org.jetbrains.jps.model.java.compiler.JavaCompilers; import org.jetbrains.jps.model.java.compiler.JavaCompilers;
import javax.tools.JavaCompiler; import javax.tools.*;
import javax.tools.ToolProvider;
import java.awt.*; import java.awt.*;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
@@ -979,12 +978,17 @@ public final class BuildManager implements Disposable {
final StringBuilder msg = new StringBuilder(); final StringBuilder msg = new StringBuilder();
msg.append(JavaCompilerBundle.message("abnormal.build.process.termination")).append(": "); msg.append(JavaCompilerBundle.message("abnormal.build.process.termination")).append(": ");
if (errorsOnLaunch != null && errorsOnLaunch.length() > 0) { if (errorsOnLaunch != null && errorsOnLaunch.length() > 0) {
msg.append("\n").append(errorsOnLaunch); if (StringUtil.contains(errorsOnLaunch, "io.netty.channel.ConnectTimeoutException") && wslDistribution != null) {
if (StringUtil.contains(errorsOnLaunch, "java.lang.NoSuchMethodError")) { msg.append(JavaCompilerBundle.message("wsl.network.connection.failure"));
msg.append( }
"\nThe error may be caused by JARs in Java Extensions directory which conflicts with libraries used by the external build process.") else {
.append( msg.append("\n").append(errorsOnLaunch);
"\nTry adding -Djava.ext.dirs=\"\" argument to 'Build process VM options' in File | Settings | Build, Execution, Deployment | Compiler to fix the problem."); if (StringUtil.contains(errorsOnLaunch, "java.lang.NoSuchMethodError")) {
msg.append(
"\nThe error may be caused by JARs in Java Extensions directory which conflicts with libraries used by the external build process.")
.append(
"\nTry adding -Djava.ext.dirs=\"\" argument to 'Build process VM options' in File | Settings | Build, Execution, Deployment | Compiler to fix the problem.");
}
} }
} }
else { else {

View File

@@ -209,6 +209,7 @@ eclipse.compiler.path.leave.empty.help.message=Path to ECJ batch compiler tool (
eclipse.compiler.proceed.on.errors.option=Proceed on errors eclipse.compiler.proceed.on.errors.option=Proceed on errors
progress.title.cancelling.auto.make.builds=Cancelling Auto-Make Builds progress.title.cancelling.auto.make.builds=Cancelling Auto-Make Builds
abnormal.build.process.termination=Abnormal build process termination abnormal.build.process.termination=Abnormal build process termination
wsl.network.connection.failure=Can't establish network connection from WSL to Windows host (could be blocked by firewall). More info: https://jb.gg/wsl-firewall
unknown.build.process.error=unknown error unknown.build.process.error=unknown error
intention.name.make.implements=Make implements ''{0}'' intention.name.make.implements=Make implements ''{0}''
intention.name.make.extends=Make extends ''{0}'' intention.name.make.extends=Make extends ''{0}''