From d048fdfe62c4da640ce103c84b1a6432edc17f7f Mon Sep 17 00:00:00 2001 From: Mikhail Golubev Date: Mon, 22 Jul 2019 21:39:54 +0300 Subject: [PATCH] PY-34622 For async roots listener use SDK itself as the disposal anchor if possible Otherwise, we might get stale VFS events when SDK has already been deleted from the SDK table. GitOrigin-RevId: c9331c3dbba7bec6b80161855360154b1df297a4 --- python/src/com/jetbrains/python/packaging/PyPackageUtil.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/python/src/com/jetbrains/python/packaging/PyPackageUtil.java b/python/src/com/jetbrains/python/packaging/PyPackageUtil.java index 393cf6803fce..c4d3de6d9627 100644 --- a/python/src/com/jetbrains/python/packaging/PyPackageUtil.java +++ b/python/src/com/jetbrains/python/packaging/PyPackageUtil.java @@ -16,6 +16,7 @@ package com.jetbrains.python.packaging; import com.intellij.execution.ExecutionException; +import com.intellij.openapi.Disposable; import com.intellij.openapi.application.Application; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Logger; @@ -521,6 +522,7 @@ public class PyPackageUtil { */ public static void runOnChangeUnderInterpreterPaths(@NotNull Sdk sdk, @NotNull Runnable runnable) { final Application app = ApplicationManager.getApplication(); + final Disposable disposable = sdk instanceof Disposable ? (Disposable)sdk : app; VirtualFileManager.getInstance().addAsyncFileListener(new AsyncFileListener() { @Nullable @Override @@ -542,6 +544,6 @@ public class PyPackageUtil { // No continuation in write action is needed return null; } - }, app); + }, disposable); } }