From 3d3242f8cc08d8991fb51de8cda7784365905029 Mon Sep 17 00:00:00 2001 From: UNV Date: Fri, 9 May 2025 14:28:32 +0300 Subject: [PATCH] Replacing Application.assertIsDispatchThread() with UIAccess.assertIsUIThread(). --- .../debugger/impl/DebuggerManagerImpl.java | 7 ++-- .../java/debugger/impl/DebuggerSession.java | 6 +-- .../impl/engine/DebugProcessImpl.java | 3 +- .../ui/breakpoints/BreakpointManager.java | 23 ++++++----- .../impl/ui/impl/watch/DebuggerTree.java | 39 +++++++++---------- .../ExternalAnnotationsManagerImpl.java | 12 +++--- .../JavaPostfixTemplateProvider.java | 5 ++- .../intellij/java/impl/slicer/SlicePanel.java | 3 +- 8 files changed, 54 insertions(+), 44 deletions(-) diff --git a/java-debugger-impl/src/main/java/com/intellij/java/debugger/impl/DebuggerManagerImpl.java b/java-debugger-impl/src/main/java/com/intellij/java/debugger/impl/DebuggerManagerImpl.java index 0bb1544228..20d855c97b 100644 --- a/java-debugger-impl/src/main/java/com/intellij/java/debugger/impl/DebuggerManagerImpl.java +++ b/java-debugger-impl/src/main/java/com/intellij/java/debugger/impl/DebuggerManagerImpl.java @@ -53,6 +53,7 @@ import consulo.process.event.ProcessAdapter; import consulo.process.event.ProcessEvent; import consulo.project.Project; +import consulo.ui.UIAccess; import consulo.ui.annotation.RequiredUIAccess; import consulo.util.collection.Lists; import consulo.util.collection.SmartList; @@ -150,7 +151,7 @@ private DebuggerManagerListener listener() { @Override @RequiredUIAccess public DebuggerSession getSession(DebugProcess process) { - Application.get().assertIsDispatchThread(); + UIAccess.assertIsUIThread(); return getSessions().stream().filter(debuggerSession -> process == debuggerSession.getProcess()).findFirst().orElse(null); } @@ -175,7 +176,7 @@ public Stream> getCustomPositionManagerF @Nullable @RequiredUIAccess public DebuggerSession attachVirtualMachine(@Nonnull DebugEnvironment environment) throws ExecutionException { - Application.get().assertIsDispatchThread(); + UIAccess.assertIsUIThread(); DebugProcessEvents debugProcess = new DebugProcessEvents(myProject); DebuggerSession session = DebuggerSession.create(environment.getSessionName(), debugProcess, environment); ExecutionResult executionResult = session.getProcess().getExecutionResult(); @@ -514,7 +515,7 @@ public void setState( DebuggerSession.Event event, String description ) { - Application.get().assertIsDispatchThread(); + UIAccess.assertIsUIThread(); myDebuggerSession = context.getDebuggerSession(); if (myDebuggerSession != null) { myDebuggerSession.getContextManager().setState(context, state, event, description); diff --git a/java-debugger-impl/src/main/java/com/intellij/java/debugger/impl/DebuggerSession.java b/java-debugger-impl/src/main/java/com/intellij/java/debugger/impl/DebuggerSession.java index c001dc9a8f..9b095baeea 100644 --- a/java-debugger-impl/src/main/java/com/intellij/java/debugger/impl/DebuggerSession.java +++ b/java-debugger-impl/src/main/java/com/intellij/java/debugger/impl/DebuggerSession.java @@ -28,7 +28,6 @@ import com.intellij.java.debugger.impl.jdi.StackFrameProxyImpl; import com.intellij.java.debugger.impl.jdi.ThreadReferenceProxyImpl; import com.intellij.java.debugger.impl.ui.breakpoints.Breakpoint; -import com.intellij.java.debugger.impl.ui.breakpoints.BreakpointWithHighlighter; import com.intellij.java.debugger.impl.ui.breakpoints.LineBreakpoint; import com.intellij.java.debugger.localize.JavaDebuggerLocalize; import com.intellij.java.execution.configurations.RemoteConnection; @@ -60,6 +59,7 @@ import consulo.process.ProcessOutputTypes; import consulo.project.Project; import consulo.project.ui.notification.NotificationType; +import consulo.ui.UIAccess; import consulo.ui.annotation.RequiredUIAccess; import consulo.ui.ex.action.Presentation; import consulo.ui.ex.awt.Messages; @@ -184,7 +184,7 @@ public DebuggerContextImpl getContext() { @Override @RequiredUIAccess public void setState(@Nonnull DebuggerContextImpl context, State state, Event event, String description) { - Application.get().assertIsDispatchThread(); + UIAccess.assertIsUIThread(); DebuggerSession session = context.getDebuggerSession(); LOG.assertTrue(session == DebuggerSession.this || session == null); Runnable setStateRunnable = () -> { @@ -479,7 +479,7 @@ public boolean isRunning() { @RequiredUIAccess private SuspendContextImpl getSuspendContext() { - Application.get().assertIsDispatchThread(); + UIAccess.assertIsUIThread(); return getContextManager().getContext().getSuspendContext(); } diff --git a/java-debugger-impl/src/main/java/com/intellij/java/debugger/impl/engine/DebugProcessImpl.java b/java-debugger-impl/src/main/java/com/intellij/java/debugger/impl/engine/DebugProcessImpl.java index 8d0461f27b..da574b2668 100644 --- a/java-debugger-impl/src/main/java/com/intellij/java/debugger/impl/engine/DebugProcessImpl.java +++ b/java-debugger-impl/src/main/java/com/intellij/java/debugger/impl/engine/DebugProcessImpl.java @@ -89,6 +89,7 @@ import consulo.project.ui.notification.NotificationType; import consulo.project.ui.wm.ToolWindowId; import consulo.proxy.EventDispatcher; +import consulo.ui.UIAccess; import consulo.ui.annotation.RequiredUIAccess; import consulo.ui.ex.action.ActionsBundle; import consulo.ui.ex.action.Presentation; @@ -1946,7 +1947,7 @@ public ExecutionResult attachVirtualMachine(DebugEnvironment environment, Debugg mySession = session; myWaitFor.down(); - myProject.getApplication().assertIsDispatchThread(); + UIAccess.assertIsUIThread(); LOG.assertTrue(isInInitialState()); myConnection = environment.getRemoteConnection(); diff --git a/java-debugger-impl/src/main/java/com/intellij/java/debugger/impl/ui/breakpoints/BreakpointManager.java b/java-debugger-impl/src/main/java/com/intellij/java/debugger/impl/ui/breakpoints/BreakpointManager.java index 674cda00e0..c5f3f8911e 100644 --- a/java-debugger-impl/src/main/java/com/intellij/java/debugger/impl/ui/breakpoints/BreakpointManager.java +++ b/java-debugger-impl/src/main/java/com/intellij/java/debugger/impl/ui/breakpoints/BreakpointManager.java @@ -13,11 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -/* - * Class BreakpointManager - * @author Jeka - */ package com.intellij.java.debugger.impl.ui.breakpoints; import com.intellij.java.debugger.impl.*; @@ -44,6 +39,8 @@ import consulo.logging.Logger; import consulo.project.Project; import consulo.project.ui.notification.NotificationType; +import consulo.ui.UIAccess; +import consulo.ui.annotation.RequiredUIAccess; import consulo.util.collection.ContainerUtil; import consulo.util.dataholder.Key; import consulo.util.lang.Comparing; @@ -55,6 +52,9 @@ import java.util.List; import java.util.function.Supplier; +/** + * @author Jeka + */ public class BreakpointManager { private static final Logger LOG = Logger.getInstance(BreakpointManager.class); @@ -121,6 +121,7 @@ public StepIntoBreakpoint addStepIntoBreakpoint(@Nonnull BreakpointStepMethodFil } @Nullable + @RequiredUIAccess public FieldBreakpoint addFieldBreakpoint(@Nonnull Document document, int offset) { PsiField field = FieldBreakpoint.findField(myProject, document, offset); if (field == null) { @@ -137,8 +138,9 @@ public FieldBreakpoint addFieldBreakpoint(@Nonnull Document document, int offset } @Nullable + @RequiredUIAccess public FieldBreakpoint addFieldBreakpoint(Document document, int lineIndex, String fieldName) { - ApplicationManager.getApplication().assertIsDispatchThread(); + UIAccess.assertIsUIThread(); XLineBreakpoint xBreakpoint = addXLineBreakpoint(JavaFieldBreakpointType.class, document, lineIndex); Breakpoint javaBreakpoint = getJavaBreakpoint(xBreakpoint); if (javaBreakpoint instanceof FieldBreakpoint) { @@ -151,8 +153,9 @@ public FieldBreakpoint addFieldBreakpoint(Document document, int lineIndex, Stri } @Nullable + @RequiredUIAccess public MethodBreakpoint addMethodBreakpoint(Document document, int lineIndex) { - ApplicationManager.getApplication().assertIsDispatchThread(); + UIAccess.assertIsUIThread(); XLineBreakpoint xBreakpoint = addXLineBreakpoint(JavaMethodBreakpointType.class, document, lineIndex); Breakpoint javaBreakpoint = getJavaBreakpoint(xBreakpoint); @@ -316,15 +319,17 @@ protected void addFilter(@Nonnull final MethodExitRequest request, final ThreadR } } + @RequiredUIAccess public void updateBreakpointsUI() { - ApplicationManager.getApplication().assertIsDispatchThread(); + UIAccess.assertIsUIThread(); for (Breakpoint breakpoint : getBreakpoints()) { breakpoint.updateUI(); } } + @RequiredUIAccess public void reloadBreakpoints() { - ApplicationManager.getApplication().assertIsDispatchThread(); + UIAccess.assertIsUIThread(); for (Breakpoint breakpoint : getBreakpoints()) { breakpoint.reload(); diff --git a/java-debugger-impl/src/main/java/com/intellij/java/debugger/impl/ui/impl/watch/DebuggerTree.java b/java-debugger-impl/src/main/java/com/intellij/java/debugger/impl/ui/impl/watch/DebuggerTree.java index 61a20d65bc..ee765ed0e1 100644 --- a/java-debugger-impl/src/main/java/com/intellij/java/debugger/impl/ui/impl/watch/DebuggerTree.java +++ b/java-debugger-impl/src/main/java/com/intellij/java/debugger/impl/ui/impl/watch/DebuggerTree.java @@ -13,26 +13,21 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -/* - * Class DebuggerTree - * @author Jeka - */ package com.intellij.java.debugger.impl.ui.impl.watch; import com.intellij.java.debugger.DebuggerBundle; +import com.intellij.java.debugger.engine.DebuggerUtils; +import com.intellij.java.debugger.engine.evaluation.EvaluateException; +import com.intellij.java.debugger.impl.DebuggerContextImpl; import com.intellij.java.debugger.impl.DebuggerInvocationUtil; +import com.intellij.java.debugger.impl.DebuggerSession; +import com.intellij.java.debugger.impl.DebuggerUtilsEx; import com.intellij.java.debugger.impl.engine.DebugProcessImpl; -import com.intellij.java.debugger.engine.DebuggerUtils; import com.intellij.java.debugger.impl.engine.SuspendContextImpl; -import com.intellij.java.debugger.engine.evaluation.EvaluateException; import com.intellij.java.debugger.impl.engine.evaluation.EvaluationContextImpl; import com.intellij.java.debugger.impl.engine.events.DebuggerCommandImpl; import com.intellij.java.debugger.impl.engine.events.DebuggerContextCommandImpl; import com.intellij.java.debugger.impl.engine.events.SuspendContextCommandImpl; -import com.intellij.java.debugger.impl.DebuggerContextImpl; -import com.intellij.java.debugger.impl.DebuggerSession; -import com.intellij.java.debugger.impl.DebuggerUtilsEx; import com.intellij.java.debugger.impl.jdi.LocalVariableProxyImpl; import com.intellij.java.debugger.impl.jdi.StackFrameProxyImpl; import com.intellij.java.debugger.impl.jdi.ThreadGroupReferenceProxyImpl; @@ -44,31 +39,32 @@ import com.intellij.java.debugger.impl.ui.impl.tree.TreeBuilder; import com.intellij.java.debugger.impl.ui.impl.tree.TreeBuilderNode; import com.intellij.java.debugger.impl.ui.tree.DebuggerTreeNode; -import com.intellij.java.debugger.ui.tree.NodeDescriptor; import com.intellij.java.debugger.impl.ui.tree.render.ArrayRenderer; import com.intellij.java.debugger.impl.ui.tree.render.ChildrenBuilder; import com.intellij.java.debugger.impl.ui.tree.render.ClassRenderer; import com.intellij.java.debugger.impl.ui.tree.render.NodeRenderer; -import consulo.dataContext.DataProvider; +import com.intellij.java.debugger.ui.tree.NodeDescriptor; import consulo.application.ApplicationManager; +import consulo.dataContext.DataProvider; import consulo.execution.debug.frame.XDebuggerTreeNodeHyperlink; -import consulo.project.Project; -import consulo.util.lang.Pair; -import consulo.util.lang.StringUtil; -import consulo.ui.ex.SimpleTextAttributes; -import consulo.ui.ex.awt.speedSearch.SpeedSearchComparator; -import consulo.ui.ex.awt.speedSearch.TreeSpeedSearch; import consulo.execution.debug.frame.XValueChildrenList; import consulo.execution.debug.setting.XDebuggerSettingsManager; import consulo.internal.com.sun.jdi.*; import consulo.internal.com.sun.jdi.event.Event; import consulo.internal.com.sun.jdi.event.ExceptionEvent; import consulo.logging.Logger; +import consulo.project.Project; +import consulo.ui.UIAccess; +import consulo.ui.ex.SimpleTextAttributes; +import consulo.ui.ex.awt.speedSearch.SpeedSearchComparator; +import consulo.ui.ex.awt.speedSearch.TreeSpeedSearch; import consulo.ui.image.Image; import consulo.util.dataholder.Key; - +import consulo.util.lang.Pair; +import consulo.util.lang.StringUtil; import jakarta.annotation.Nonnull; import jakarta.annotation.Nullable; + import javax.swing.*; import javax.swing.event.TreeModelEvent; import javax.swing.event.TreeModelListener; @@ -80,6 +76,9 @@ import java.util.LinkedList; import java.util.List; +/** + * @author Jeka + */ public abstract class DebuggerTree extends DebuggerTreeBase implements DataProvider { private static final Logger LOG = Logger.getInstance(DebuggerTree.class); @@ -412,7 +411,7 @@ protected final void buildWhenPaused(DebuggerContextImpl context, RefreshDebugge public void rebuild(final DebuggerContextImpl context) { - ApplicationManager.getApplication().assertIsDispatchThread(); + UIAccess.assertIsUIThread(); final DebugProcessImpl process = context.getDebugProcess(); if(process == null) { diff --git a/plugin/src/main/java/com/intellij/java/impl/codeInsight/ExternalAnnotationsManagerImpl.java b/plugin/src/main/java/com/intellij/java/impl/codeInsight/ExternalAnnotationsManagerImpl.java index 4228d27f10..ac8c3f7998 100644 --- a/plugin/src/main/java/com/intellij/java/impl/codeInsight/ExternalAnnotationsManagerImpl.java +++ b/plugin/src/main/java/com/intellij/java/impl/codeInsight/ExternalAnnotationsManagerImpl.java @@ -71,6 +71,7 @@ import consulo.project.DumbService; import consulo.project.Project; import consulo.project.localize.ProjectLocalize; +import consulo.ui.UIAccess; import consulo.ui.annotation.RequiredUIAccess; import consulo.ui.ex.awt.DialogWrapper; import consulo.ui.ex.awt.LocalizeAction; @@ -164,8 +165,8 @@ public void annotateExternally( @Nonnull final PsiFile fromFile, @Nullable final PsiNameValuePair[] value ) { + UIAccess.assertIsUIThread(); Application application = listOwner.getApplication(); - application.assertIsDispatchThread(); LOG.assertTrue(!application.isWriteAccessAllowed()); final Project project = myPsiManager.getProject(); @@ -387,7 +388,7 @@ public void redo() { @Override @RequiredUIAccess public boolean deannotate(@Nonnull final PsiModifierListOwner listOwner, @Nonnull final String annotationFQN) { - listOwner.getApplication().assertIsDispatchThread(); + UIAccess.assertIsUIThread(); return processExistingExternalAnnotations(listOwner, annotationFQN, annotationTag -> { PsiElement parent = annotationTag.getParent(); @@ -408,9 +409,8 @@ public boolean editExternalAnnotation( @Nonnull final String annotationFQN, @Nullable final PsiNameValuePair[] value ) { - listOwner.getApplication().assertIsDispatchThread(); - return processExistingExternalAnnotations(listOwner, annotationFQN, annotationTag -> - { + UIAccess.assertIsUIThread(); + return processExistingExternalAnnotations(listOwner, annotationFQN, annotationTag -> { annotationTag.replace( XmlElementFactory.getInstance(myPsiManager.getProject()).createTagFromText(createAnnotationTag(annotationFQN, value)) ); @@ -490,7 +490,7 @@ private boolean processExistingExternalAnnotations( @Nonnull @RequiredUIAccess public AnnotationPlace chooseAnnotationsPlace(@Nonnull final PsiElement element) { - element.getApplication().assertIsDispatchThread(); + UIAccess.assertIsUIThread(); return chooseAnnotationsPlace(element, () -> confirmNewExternalAnnotationRoot(element)); } diff --git a/plugin/src/main/java/com/intellij/java/impl/codeInsight/template/postfix/templates/JavaPostfixTemplateProvider.java b/plugin/src/main/java/com/intellij/java/impl/codeInsight/template/postfix/templates/JavaPostfixTemplateProvider.java index 1ea767ebea..8501d43d77 100644 --- a/plugin/src/main/java/com/intellij/java/impl/codeInsight/template/postfix/templates/JavaPostfixTemplateProvider.java +++ b/plugin/src/main/java/com/intellij/java/impl/codeInsight/template/postfix/templates/JavaPostfixTemplateProvider.java @@ -30,6 +30,8 @@ import consulo.language.editor.postfixTemplate.PostfixTemplate; import consulo.language.editor.postfixTemplate.PostfixTemplateProvider; import consulo.language.psi.*; +import consulo.ui.UIAccess; +import consulo.ui.annotation.RequiredUIAccess; import consulo.undoRedo.CommandProcessor; import consulo.util.dataholder.Key; @@ -59,8 +61,9 @@ public boolean isTerminalSymbol(char currentChar) { } @Override + @RequiredUIAccess public void preExpand(@Nonnull final PsiFile file, @Nonnull final Editor editor) { - ApplicationManager.getApplication().assertIsDispatchThread(); + UIAccess.assertIsUIThread(); file.putUserData(ADDED_SEMICOLON, null); if (isSemicolonNeeded(file, editor)) { diff --git a/plugin/src/main/java/com/intellij/java/impl/slicer/SlicePanel.java b/plugin/src/main/java/com/intellij/java/impl/slicer/SlicePanel.java index 41ca925d9f..cbdddbe98f 100644 --- a/plugin/src/main/java/com/intellij/java/impl/slicer/SlicePanel.java +++ b/plugin/src/main/java/com/intellij/java/impl/slicer/SlicePanel.java @@ -27,6 +27,7 @@ import consulo.project.ui.view.tree.AbstractTreeNode; import consulo.project.ui.wm.ToolWindowManager; import consulo.project.ui.wm.ToolWindowManagerListener; +import consulo.ui.UIAccess; import consulo.ui.annotation.RequiredUIAccess; import consulo.ui.ex.action.*; import consulo.ui.ex.awt.*; @@ -109,7 +110,7 @@ public void stateChanged(ToolWindowManager toolWindowManager) { }; project.getMessageBus().connect(this).subscribe(ToolWindowManagerListener.class, listener); - project.getApplication().assertIsDispatchThread(); + UIAccess.assertIsUIThread(); myProject = project; myTree = createTree();