From 8d84e47e582e3ba0604cd8d043fa3f6b60a88f65 Mon Sep 17 00:00:00 2001 From: Valentina Kiryushkina Date: Fri, 3 Feb 2017 12:30:53 +0300 Subject: [PATCH] PY-22424 Shutdown kernels on settings change --- .../plugins/ipnb/configuration/IpnbConfigurable.java | 12 +++++++++--- .../ipnb/configuration/IpnbConnectionManager.java | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/python/ipnb/src/org/jetbrains/plugins/ipnb/configuration/IpnbConfigurable.java b/python/ipnb/src/org/jetbrains/plugins/ipnb/configuration/IpnbConfigurable.java index e9d81469a9d9..d2ff966666c8 100644 --- a/python/ipnb/src/org/jetbrains/plugins/ipnb/configuration/IpnbConfigurable.java +++ b/python/ipnb/src/org/jetbrains/plugins/ipnb/configuration/IpnbConfigurable.java @@ -73,15 +73,21 @@ public class IpnbConfigurable implements SearchableConfigurable { @Override public void apply() throws ConfigurationException { - String url = StringUtil.notNullize(myFieldUrl.getText()); - url = StringUtil.trimEnd(url, "/"); - IpnbSettings.getInstance(myProject).setURL(url); IpnbSettings.getInstance(myProject).setWorkingDirectory(myWorkingDirField.getText()); IpnbSettings.getInstance(myProject).setArguments(myArgumentsField.getText()); + + String url = StringUtil.notNullize(myFieldUrl.getText()); + url = StringUtil.trimEnd(url, "/"); + final boolean urlModified = !url.equals(IpnbSettings.getInstance(myProject).getURL()); + if (urlModified) { + IpnbSettings.getInstance(myProject).setURL(url); + IpnbConnectionManager.getInstance(myProject).shutdownKernels(); + } if (isCredentialsModified()) { IpnbSettings.getInstance(myProject).setUsername(myUsernameField.getText()); IpnbSettings.getInstance(myProject).setPassword(String.valueOf(myPasswordField.getPassword())); + IpnbConnectionManager.getInstance(myProject).shutdownKernels(); } } diff --git a/python/ipnb/src/org/jetbrains/plugins/ipnb/configuration/IpnbConnectionManager.java b/python/ipnb/src/org/jetbrains/plugins/ipnb/configuration/IpnbConnectionManager.java index 2e34f803ccb0..3de28620264c 100644 --- a/python/ipnb/src/org/jetbrains/plugins/ipnb/configuration/IpnbConnectionManager.java +++ b/python/ipnb/src/org/jetbrains/plugins/ipnb/configuration/IpnbConnectionManager.java @@ -544,7 +544,7 @@ public final class IpnbConnectionManager implements ProjectComponent { shutdownKernels(); } - private void shutdownKernels() { + public void shutdownKernels() { for (IpnbConnection connection : myKernels.values()) { if (!connection.isAlive()) continue; connection.shutdown();