From fbc56a607ceb6c9e92252ba13b3fd56c56381dc0 Mon Sep 17 00:00:00 2001 From: Dmitry Batkovich Date: Tue, 17 Jan 2017 11:42:33 +0300 Subject: [PATCH] inspection view: fix alarm leak EA-92663 --- .../ui/InspectionViewPsiTreeChangeAdapter.java | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/codeInspection/ui/InspectionViewPsiTreeChangeAdapter.java b/platform/lang-impl/src/com/intellij/codeInspection/ui/InspectionViewPsiTreeChangeAdapter.java index 741420fe4ecb..aa4f916b0198 100644 --- a/platform/lang-impl/src/com/intellij/codeInspection/ui/InspectionViewPsiTreeChangeAdapter.java +++ b/platform/lang-impl/src/com/intellij/codeInspection/ui/InspectionViewPsiTreeChangeAdapter.java @@ -31,14 +31,10 @@ import com.intellij.psi.*; import com.intellij.util.Alarm; import com.intellij.util.Processor; import com.intellij.util.containers.hash.HashSet; -import com.intellij.util.ui.tree.TreeUtil; import com.intellij.util.ui.update.MergingUpdateQueue; import com.intellij.util.ui.update.Update; import org.jetbrains.annotations.NotNull; -import javax.swing.tree.DefaultTreeModel; -import javax.swing.tree.TreePath; -import java.util.List; import java.util.Set; /** @@ -50,10 +46,11 @@ class InspectionViewPsiTreeChangeAdapter extends PsiTreeChangeAdapter { private final InspectionResultsView myView; private final MergingUpdateQueue myUpdater; - private final Alarm myAlarm = new Alarm(Alarm.ThreadToUse.SWING_THREAD); + private final Alarm myAlarm; public InspectionViewPsiTreeChangeAdapter(@NotNull InspectionResultsView view) { myView = view; + myAlarm = new Alarm(Alarm.ThreadToUse.SWING_THREAD, view); myUpdater = new MergingUpdateQueue("inspection.view.psi.update.listener", 300, true, @@ -110,9 +107,7 @@ class InspectionViewPsiTreeChangeAdapter extends PsiTreeChangeAdapter { }); if (needUpdateUI[0]) { myAlarm.cancelAllRequests(); - myAlarm.addRequest(() -> { - myView.resetTree(); - }, 100, ModalityState.NON_MODAL); + myAlarm.addRequest(() -> myView.resetTree(), 100, ModalityState.NON_MODAL); } } };