From 3c68a65b3d026c5c3791ed7d22ed1a2c52009392 Mon Sep 17 00:00:00 2001 From: fitermay Date: Thu, 14 Apr 2016 18:46:42 -0400 Subject: [PATCH] --fix NPE in PythonSdkDetailsDialog.java --- .../python/configuration/PythonSdkDetailsDialog.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/python/python-community-configure/src/com/jetbrains/python/configuration/PythonSdkDetailsDialog.java b/python/python-community-configure/src/com/jetbrains/python/configuration/PythonSdkDetailsDialog.java index 2ae638fc9233..326671eb84f3 100644 --- a/python/python-community-configure/src/com/jetbrains/python/configuration/PythonSdkDetailsDialog.java +++ b/python/python-community-configure/src/com/jetbrains/python/configuration/PythonSdkDetailsDialog.java @@ -226,6 +226,7 @@ public class PythonSdkDetailsDialog extends DialogWrapper { mySdkSettingsWereModified.run(); } for (SdkModificator modificator : myModifiedModificators) { + /* This should always be true barring bug elsewhere, log error on else? */ if (modificator.isWritable()) { modificator.commitChanges(); } @@ -433,8 +434,13 @@ public class PythonSdkDetailsDialog extends DialogWrapper { } private void reloadSdk(@NotNull Sdk currentSdk) { - // XXX: Here we are reusing a modifier that we are going to commit later - PythonSdkUpdater.update(currentSdk, myModificators.get(currentSdk), myProject, null); + /* PythonSdkUpdater.update invalidates the modificator so we need to create a new + one for further changes + */ + if (PythonSdkUpdater.update(currentSdk, myModificators.get(currentSdk), myProject, null)){ + myModifiedModificators.remove(myModificators.get(currentSdk)); + myModificators.put(currentSdk, currentSdk.getSdkModificator()); + } } private class ToggleVirtualEnvFilterButton extends ToggleActionButton implements DumbAware {