From 8f9833297ae8a77668ea66514f72baedde9efddf Mon Sep 17 00:00:00 2001 From: "Egor.Ushakov" Date: Tue, 11 Apr 2017 16:01:47 +0300 Subject: [PATCH] cleanup: use WriteAction --- .../ui/breakpoints/BreakpointManager.java | 10 +++--- .../breakpoints/JavaFieldBreakpointType.java | 6 ++-- .../JavaWildcardMethodBreakpointType.java | 7 ++-- .../xdebugger/impl/XDebuggerUtilImpl.java | 4 +-- .../impl/breakpoints/XLineBreakpointImpl.java | 7 ++-- .../breakpoints/XLineBreakpointManager.java | 11 +++---- .../UpdateBreakpointsAfterRenameTest.java | 13 +++----- .../intellij/xdebugger/XDebuggerTestCase.java | 33 +++++++------------ .../intellij/xdebugger/XDebuggerTestUtil.java | 7 ++-- 9 files changed, 39 insertions(+), 59 deletions(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointManager.java b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointManager.java index 11d828cffe49..e260a8b6d000 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointManager.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointManager.java @@ -32,6 +32,7 @@ import com.intellij.debugger.impl.DebuggerSession; import com.intellij.debugger.ui.JavaDebuggerSupport; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ReadAction; +import com.intellij.openapi.application.WriteAction; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Document; import com.intellij.openapi.editor.Editor; @@ -42,7 +43,6 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.startup.StartupManager; import com.intellij.openapi.ui.MessageType; import com.intellij.openapi.util.Comparing; -import com.intellij.openapi.util.Computable; import com.intellij.openapi.util.InvalidDataException; import com.intellij.openapi.util.Key; import com.intellij.openapi.vfs.VirtualFile; @@ -247,7 +247,7 @@ public class BreakpointManager { public ExceptionBreakpoint addExceptionBreakpoint(@NotNull final String exceptionClassName, final String packageName) { ApplicationManager.getApplication().assertIsDispatchThread(); final JavaExceptionBreakpointType type = XDebuggerUtil.getInstance().findBreakpointType(JavaExceptionBreakpointType.class); - return ApplicationManager.getApplication().runWriteAction((Computable)() -> { + return WriteAction.compute(() -> { XBreakpoint xBreakpoint = XDebuggerManager.getInstance(myProject).getBreakpointManager() .addBreakpoint(type, new JavaExceptionBreakpointProperties(exceptionClassName, packageName)); Breakpoint javaBreakpoint = getJavaBreakpoint(xBreakpoint); @@ -279,7 +279,7 @@ public class BreakpointManager { private > XLineBreakpoint addXLineBreakpoint(Class> typeCls, Document document, final int lineIndex) { final XBreakpointType type = XDebuggerUtil.getInstance().findBreakpointType(typeCls); final VirtualFile file = FileDocumentManager.getInstance().getFile(document); - return ApplicationManager.getApplication().runWriteAction((Computable)() -> XDebuggerManager.getInstance(myProject).getBreakpointManager() + return WriteAction.compute(() -> XDebuggerManager.getInstance(myProject).getBreakpointManager() .addLineBreakpoint((XLineBreakpointType)type, file.getUrl(), lineIndex, ((XLineBreakpointType)type).createBreakpointProperties(file, lineIndex))); } @@ -443,7 +443,7 @@ public class BreakpointManager { private > XBreakpoint createXBreakpoint(Class> typeCls) { final XBreakpointType type = XDebuggerUtil.getInstance().findBreakpointType(typeCls); - return ApplicationManager.getApplication().runWriteAction((Computable)() -> XDebuggerManager.getInstance(myProject).getBreakpointManager().addBreakpoint((XBreakpointType)type, type.createProperties())); + return WriteAction.compute(() -> XDebuggerManager.getInstance(myProject).getBreakpointManager().addBreakpoint((XBreakpointType)type, type.createProperties())); } private > XLineBreakpoint createXLineBreakpoint(Class> typeCls, @@ -479,7 +479,7 @@ public class BreakpointManager { if (breakpoint == null) { return; } - ApplicationManager.getApplication().runWriteAction(() -> getXBreakpointManager().removeBreakpoint(breakpoint.myXBreakpoint)); + WriteAction.run(() -> getXBreakpointManager().removeBreakpoint(breakpoint.myXBreakpoint)); } public void writeExternal(@NotNull final Element parentNode) { diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/JavaFieldBreakpointType.java b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/JavaFieldBreakpointType.java index d40bc8023c8c..410a8221b751 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/JavaFieldBreakpointType.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/JavaFieldBreakpointType.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2015 JetBrains s.r.o. + * Copyright 2000-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ import com.intellij.CommonBundle; import com.intellij.debugger.DebuggerBundle; import com.intellij.debugger.HelpID; import com.intellij.icons.AllIcons; -import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.application.WriteAction; import com.intellij.openapi.editor.Document; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.Messages; @@ -146,7 +146,7 @@ public class JavaFieldBreakpointType extends JavaLineBreakpointTypeBase { + WriteAction.run(() -> { XLineBreakpoint fieldBreakpoint = XDebuggerManager.getInstance(project).getBreakpointManager() .addLineBreakpoint(JavaFieldBreakpointType.this, psiFile.getVirtualFile().getUrl(), line, new JavaFieldBreakpointProperties(fieldName, className)); result.set(fieldBreakpoint); diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/JavaWildcardMethodBreakpointType.java b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/JavaWildcardMethodBreakpointType.java index 990850708e55..ecab88d344bd 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/JavaWildcardMethodBreakpointType.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/JavaWildcardMethodBreakpointType.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 JetBrains s.r.o. + * Copyright 2000-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,9 +18,8 @@ package com.intellij.debugger.ui.breakpoints; import com.intellij.debugger.DebuggerBundle; import com.intellij.debugger.HelpID; import com.intellij.icons.AllIcons; -import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.application.WriteAction; import com.intellij.openapi.project.Project; -import com.intellij.openapi.util.Computable; import com.intellij.openapi.util.registry.Registry; import com.intellij.xdebugger.XDebuggerManager; import com.intellij.xdebugger.breakpoints.XBreakpoint; @@ -104,7 +103,7 @@ public class JavaWildcardMethodBreakpointType extends JavaBreakpointTypeBase>)() -> { + return WriteAction.compute(() -> { JavaMethodBreakpointProperties properties = new JavaMethodBreakpointProperties(dialog.getClassPattern(), dialog.getMethodName()); if (Registry.is("debugger.emulate.method.breakpoints")) { properties.EMULATED = true; // create all new emulated diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebuggerUtilImpl.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebuggerUtilImpl.java index daf8c9ffa048..8131a59a23a8 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebuggerUtilImpl.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebuggerUtilImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 JetBrains s.r.o. + * Copyright 2000-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -234,7 +234,7 @@ public class XDebuggerUtilImpl extends XDebuggerUtil { @Override public PopupStep onChosen(final XLineBreakpointType.XLineBreakpointVariant selectedValue, boolean finalChoice) { selectionListener.clearHighlighter(); - ApplicationManager.getApplication().runWriteAction(() -> { + WriteAction.run(() -> { P properties = (P)selectedValue.createProperties(); res.setResult(breakpointManager.addLineBreakpoint(type, file.getUrl(), line, properties, temporary)); }); diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/XLineBreakpointImpl.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/XLineBreakpointImpl.java index 9ca82c47ad7a..22af65ff548c 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/XLineBreakpointImpl.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/XLineBreakpointImpl.java @@ -17,6 +17,7 @@ package com.intellij.xdebugger.impl.breakpoints; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.application.WriteAction; import com.intellij.openapi.editor.Document; import com.intellij.openapi.editor.colors.EditorColorsManager; import com.intellij.openapi.editor.colors.EditorColorsScheme; @@ -229,9 +230,9 @@ public class XLineBreakpointImpl

extends XBreak return false; } - public void remove () { - final XBreakpointManager breakpointManager = XDebuggerManager.getInstance(getProject()).getBreakpointManager(); - ApplicationManager.getApplication().runWriteAction(() -> breakpointManager.removeBreakpoint(XLineBreakpointImpl.this)); + public void remove() { + XBreakpointManager breakpointManager = XDebuggerManager.getInstance(getProject()).getBreakpointManager(); + WriteAction.run(() -> breakpointManager.removeBreakpoint(XLineBreakpointImpl.this)); } @Override diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/XLineBreakpointManager.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/XLineBreakpointManager.java index 9a7efcaef66f..61034f0cd3ea 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/XLineBreakpointManager.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/XLineBreakpointManager.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 JetBrains s.r.o. + * Copyright 2000-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,6 +20,7 @@ import com.intellij.ide.startup.StartupManagerEx; import com.intellij.openapi.actionSystem.IdeActions; import com.intellij.openapi.actionSystem.ex.ActionManagerEx; import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.application.WriteAction; import com.intellij.openapi.editor.Document; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.editor.EditorFactory; @@ -53,6 +54,7 @@ import com.intellij.util.ui.update.Update; import com.intellij.xdebugger.XDebuggerManager; import com.intellij.xdebugger.breakpoints.SuspendPolicy; import com.intellij.xdebugger.breakpoints.XBreakpoint; +import com.intellij.xdebugger.breakpoints.XBreakpointManager; import com.intellij.xdebugger.impl.XSourcePositionImpl; import com.intellij.xdebugger.impl.ui.DebuggerUIUtil; import gnu.trove.TIntHashSet; @@ -178,11 +180,8 @@ public class XLineBreakpointManager { return; } - ApplicationManager.getApplication().runWriteAction(() -> { - for (XBreakpoint breakpoint : toRemove) { - XDebuggerManager.getInstance(myProject).getBreakpointManager().removeBreakpoint(breakpoint); - } - }); + XBreakpointManager manager = XDebuggerManager.getInstance(myProject).getBreakpointManager(); + WriteAction.run(() -> toRemove.forEach(manager::removeBreakpoint)); } public void breakpointChanged(final XLineBreakpointImpl breakpoint) { diff --git a/platform/xdebugger-impl/testSrc/com/intellij/xdebugger/UpdateBreakpointsAfterRenameTest.java b/platform/xdebugger-impl/testSrc/com/intellij/xdebugger/UpdateBreakpointsAfterRenameTest.java index ff1155baa609..30e0a1e2b09d 100644 --- a/platform/xdebugger-impl/testSrc/com/intellij/xdebugger/UpdateBreakpointsAfterRenameTest.java +++ b/platform/xdebugger-impl/testSrc/com/intellij/xdebugger/UpdateBreakpointsAfterRenameTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2015 JetBrains s.r.o. + * Copyright 2000-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,8 +15,7 @@ */ package com.intellij.xdebugger; -import com.intellij.openapi.application.ApplicationManager; -import com.intellij.openapi.util.Computable; +import com.intellij.openapi.application.WriteAction; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; @@ -53,12 +52,8 @@ public class UpdateBreakpointsAfterRenameTest extends XBreakpointsTestCase { } private XLineBreakpoint putBreakpoint(final VirtualFile file) { - return ApplicationManager.getApplication().runWriteAction(new Computable>() { - @Override - public XLineBreakpoint compute() { - return getBreakpointManager().addLineBreakpoint(XDebuggerTestCase.MY_LINE_BREAKPOINT_TYPE, file.getUrl(), 0, null, false); - } - }); + return WriteAction.compute(() -> getBreakpointManager() + .addLineBreakpoint(XDebuggerTestCase.MY_LINE_BREAKPOINT_TYPE, file.getUrl(), 0, null, false)); } private VirtualFile createFile(String path) { diff --git a/platform/xdebugger-impl/testSrc/com/intellij/xdebugger/XDebuggerTestCase.java b/platform/xdebugger-impl/testSrc/com/intellij/xdebugger/XDebuggerTestCase.java index 4b296b069d95..d9dde6d1b4ef 100644 --- a/platform/xdebugger-impl/testSrc/com/intellij/xdebugger/XDebuggerTestCase.java +++ b/platform/xdebugger-impl/testSrc/com/intellij/xdebugger/XDebuggerTestCase.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2015 JetBrains s.r.o. + * Copyright 2000-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,9 +16,9 @@ package com.intellij.xdebugger; import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.application.WriteAction; import com.intellij.openapi.extensions.ExtensionPoint; import com.intellij.openapi.extensions.Extensions; -import com.intellij.openapi.util.Computable; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.testFramework.PlatformTestCase; import com.intellij.util.xmlb.annotations.Attribute; @@ -34,31 +34,20 @@ public abstract class XDebuggerTestCase extends PlatformTestCase { protected static final MySimpleBreakpointType MY_SIMPLE_BREAKPOINT_TYPE = new MySimpleBreakpointType(); @NotNull - static XBreakpoint addBreakpoint(final XBreakpointManagerImpl breakpointManager, - final MyBreakpointProperties abc) { - return ApplicationManager.getApplication().runWriteAction(new Computable>() { - @Override - public XBreakpoint compute() { - return breakpointManager.addBreakpoint(MY_SIMPLE_BREAKPOINT_TYPE, abc); - } - }); + static XBreakpoint addBreakpoint(XBreakpointManagerImpl breakpointManager, MyBreakpointProperties abc) { + return WriteAction.compute(() -> breakpointManager.addBreakpoint(MY_SIMPLE_BREAKPOINT_TYPE, abc)); } @NotNull - static XLineBreakpoint addLineBreakpoint(final XBreakpointManagerImpl breakpointManager, final String url, - final int line, - final MyBreakpointProperties properties) { - return ApplicationManager.getApplication().runWriteAction(new Computable>() { - @Override - public XLineBreakpoint compute() { - return breakpointManager.addLineBreakpoint(MY_LINE_BREAKPOINT_TYPE, url, line, properties); - } - }); + static XLineBreakpoint addLineBreakpoint(XBreakpointManagerImpl breakpointManager, + String url, + int line, + MyBreakpointProperties properties) { + return WriteAction.compute(() -> breakpointManager.addLineBreakpoint(MY_LINE_BREAKPOINT_TYPE, url, line, properties)); } - static void removeBreakPoint(final XBreakpointManagerImpl breakpointManager, - final XBreakpoint breakpoint) { - ApplicationManager.getApplication().runWriteAction(() -> breakpointManager.removeBreakpoint(breakpoint)); + static void removeBreakPoint(XBreakpointManagerImpl breakpointManager, XBreakpoint breakpoint) { + WriteAction.run(() -> breakpointManager.removeBreakpoint(breakpoint)); } @Override diff --git a/platform/xdebugger-impl/testSrc/com/intellij/xdebugger/XDebuggerTestUtil.java b/platform/xdebugger-impl/testSrc/com/intellij/xdebugger/XDebuggerTestUtil.java index a658d3c23c82..ee22b4bd7ade 100644 --- a/platform/xdebugger-impl/testSrc/com/intellij/xdebugger/XDebuggerTestUtil.java +++ b/platform/xdebugger-impl/testSrc/com/intellij/xdebugger/XDebuggerTestUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 JetBrains s.r.o. + * Copyright 2000-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -207,10 +207,7 @@ public class XDebuggerTestUtil { s.down(); ApplicationManager.getApplication().invokeLater(() -> s.up()); s.waitForUnsafe(); - UIUtil.invokeAndWaitIfNeeded(new Runnable() { - public void run() { - } - }); + UIUtil.invokeAndWaitIfNeeded((Runnable)() -> {}); } @NotNull