diff --git a/platform/script-debugger/debugger-ui/src/RemoteVmConnection.kt b/platform/script-debugger/debugger-ui/src/RemoteVmConnection.kt index fe4299e25f02..cfd13cf1a3b7 100644 --- a/platform/script-debugger/debugger-ui/src/RemoteVmConnection.kt +++ b/platform/script-debugger/debugger-ui/src/RemoteVmConnection.kt @@ -39,6 +39,7 @@ import javax.swing.JList abstract class RemoteVmConnection : VmConnection() { var port = -1 + var isLocalAddress = true private val connectCancelHandler = AtomicReference<() -> Unit>() @@ -47,6 +48,7 @@ abstract class RemoteVmConnection : VmConnection() { @JvmOverloads fun open(address: InetSocketAddress, stopCondition: Condition? = null): Promise { port = address.port + isLocalAddress = address.getAddress().isAnyLocalAddress() || address.getAddress().isLoopbackAddress() setState(ConnectionStatus.WAITING_FOR_CONNECTION, "Connecting to ${address.hostName}:${port}") val result = AsyncPromise() val future = ApplicationManager.getApplication().executeOnPooledThread { diff --git a/platform/script-debugger/debugger-ui/src/org/jetbrains/debugger/DebuggableRunConfiguration.java b/platform/script-debugger/debugger-ui/src/org/jetbrains/debugger/DebuggableRunConfiguration.java index dadad5f64b31..1fdb027a16bd 100644 --- a/platform/script-debugger/debugger-ui/src/org/jetbrains/debugger/DebuggableRunConfiguration.java +++ b/platform/script-debugger/debugger-ui/src/org/jetbrains/debugger/DebuggableRunConfiguration.java @@ -19,6 +19,7 @@ import com.intellij.execution.ExecutionException; import com.intellij.execution.ExecutionResult; import com.intellij.execution.configurations.RunConfiguration; import com.intellij.execution.configurations.RunProfile; +import com.intellij.execution.configurations.RunProfileState; import com.intellij.execution.runners.ExecutionEnvironment; import com.intellij.util.net.NetUtils; import com.intellij.xdebugger.XDebugProcess; @@ -32,7 +33,7 @@ import java.net.InetSocketAddress; public interface DebuggableRunConfiguration extends RunConfiguration { @NotNull - default InetSocketAddress computeDebugAddress() throws ExecutionException { + default InetSocketAddress computeDebugAddress(RunProfileState state) throws ExecutionException { try { return new InetSocketAddress(InetAddress.getLoopbackAddress(), NetUtils.findAvailableSocketPort()); } diff --git a/platform/script-debugger/debugger-ui/src/org/jetbrains/debugger/RemoteDebugConfiguration.java b/platform/script-debugger/debugger-ui/src/org/jetbrains/debugger/RemoteDebugConfiguration.java index 3ffe0d6a022c..942a5c9b5138 100644 --- a/platform/script-debugger/debugger-ui/src/org/jetbrains/debugger/RemoteDebugConfiguration.java +++ b/platform/script-debugger/debugger-ui/src/org/jetbrains/debugger/RemoteDebugConfiguration.java @@ -127,7 +127,7 @@ public abstract class RemoteDebugConfiguration extends LocatableConfigurationBas @NotNull @Override - public InetSocketAddress computeDebugAddress() { + public InetSocketAddress computeDebugAddress(RunProfileState state) { if (host == null) { return new InetSocketAddress(InetAddress.getLoopbackAddress(), port); } diff --git a/platform/util/resources/misc/registry.properties b/platform/util/resources/misc/registry.properties index 0899fc1ed87f..ccd34ff3ea7d 100644 --- a/platform/util/resources/misc/registry.properties +++ b/platform/util/resources/misc/registry.properties @@ -760,3 +760,6 @@ ide.intellij.laf.win10.ui.description=Enables Windows 10 look ide.http.server.response.actual.status=false ide.rest.api.requests.per.minute=30 ide.built.in.web.server.activatable=false + +NodeJS.Docker=false +NodeJS.Docker.description=Enables Node.JS remote execution with Docker (if Docker and Node.JS plugins are installed) diff --git a/platform/util/src/com/intellij/util/text/SemVer.java b/platform/util/src/com/intellij/util/text/SemVer.java index d2ed9faeb7db..e5b829ff5101 100644 --- a/platform/util/src/com/intellij/util/text/SemVer.java +++ b/platform/util/src/com/intellij/util/text/SemVer.java @@ -114,7 +114,8 @@ public class SemVer implements Comparable { } @NotNull - public static SemVer parseFromTextNonNullize(@NotNull final String text) { + public static SemVer parseFromTextNonNullize(@Nullable final String text) { + if (text == null) return UNKNOWN; final SemVer ver = parseFromText(text); return ver == null ? UNKNOWN : ver; } diff --git a/python/src/com/jetbrains/python/run/PythonScriptCommandLineState.java b/python/src/com/jetbrains/python/run/PythonScriptCommandLineState.java index a7bf782dbaf0..05d8d13a3940 100644 --- a/python/src/com/jetbrains/python/run/PythonScriptCommandLineState.java +++ b/python/src/com/jetbrains/python/run/PythonScriptCommandLineState.java @@ -52,7 +52,6 @@ public class PythonScriptCommandLineState extends PythonCommandLineState { myConfig = runConfiguration; } - @NotNull @Override public ExecutionResult execute(Executor executor, final CommandLinePatcher... patchers) throws ExecutionException { if (myConfig.showCommandLineAfterwards()) { @@ -71,7 +70,10 @@ public class PythonScriptCommandLineState extends PythonCommandLineState { PyConsoleOptions.getInstance(myConfig.getProject()).getPythonConsoleSettings()); runner.runSync(); - + // runner.getProcessHandler() would be null if execution error occurred + if (runner.getProcessHandler() == null) { + return null; + } List actions = Lists.newArrayList(createActions(runner.getConsoleView(), runner.getProcessHandler())); return new DefaultExecutionResult(runner.getConsoleView(), runner.getProcessHandler(), actions.toArray(new AnAction[actions.size()]));