mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Fix race condition leading to project leak through extension point listener in StartupManagerImpl
GitOrigin-RevId: af3c3fd64ea2b8f12b10be7652d28c9f0ee9b072
This commit is contained in:
committed by
intellij-monorepo-bot
parent
e4e2e3bb99
commit
5d5fb35f63
@@ -410,19 +410,21 @@ public class StartupManagerImpl extends StartupManagerEx implements Disposable {
|
||||
}
|
||||
|
||||
public void scheduleBackgroundPostStartupActivities() {
|
||||
List<StartupActivity> backgroundPostStartupActivities = StartupActivity.BACKGROUND_POST_STARTUP_ACTIVITY.getExtensionList();
|
||||
|
||||
Extensions.getRootArea().getExtensionPoint(StartupActivity.BACKGROUND_POST_STARTUP_ACTIVITY).addExtensionPointListener(
|
||||
new ExtensionPointListener<StartupActivity>() {
|
||||
@Override
|
||||
public void extensionAdded(@NotNull StartupActivity extension, @NotNull PluginDescriptor pluginDescriptor) {
|
||||
extension.runActivity(myProject);
|
||||
}
|
||||
}, false, this);
|
||||
|
||||
myBackgroundPostStartupScheduledFuture = AppExecutorUtil.getAppScheduledExecutorService().schedule(
|
||||
() -> BackgroundTaskUtil.runUnderDisposeAwareIndicator(this, () -> {
|
||||
for (StartupActivity activity : StartupActivity.BACKGROUND_POST_STARTUP_ACTIVITY.getExtensionList()) {
|
||||
for (StartupActivity activity : backgroundPostStartupActivities) {
|
||||
activity.runActivity(myProject);
|
||||
}
|
||||
|
||||
Extensions.getRootArea().getExtensionPoint(StartupActivity.BACKGROUND_POST_STARTUP_ACTIVITY).addExtensionPointListener(
|
||||
new ExtensionPointListener<StartupActivity>() {
|
||||
@Override
|
||||
public void extensionAdded(@NotNull StartupActivity extension, @NotNull PluginDescriptor pluginDescriptor) {
|
||||
extension.runActivity(myProject);
|
||||
}
|
||||
}, false, this);
|
||||
}), 5, TimeUnit.SECONDS);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user