From 881d6196370d1054c20dcddb354ab5e829bd76bc Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 1 Mar 2018 14:47:19 +0100 Subject: [PATCH] make AppUIExecutorImpl#later thread-safer --- .../intellij/openapi/application/impl/AppUIExecutorImpl.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/application/impl/AppUIExecutorImpl.java b/platform/platform-impl/src/com/intellij/openapi/application/impl/AppUIExecutorImpl.java index a2f9fb4635a5..9d528ecda6fd 100644 --- a/platform/platform-impl/src/com/intellij/openapi/application/impl/AppUIExecutorImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/application/impl/AppUIExecutorImpl.java @@ -57,11 +57,12 @@ class AppUIExecutorImpl implements AppUIExecutor { @NotNull @Override public AppUIExecutor later() { - int eventCount = IdeEventQueue.getInstance().getEventCount(); + Integer edtEventCount = ApplicationManager.getApplication().isDispatchThread() ? IdeEventQueue.getInstance().getEventCount() : null; return withConstraint(new ConstrainedExecutor() { @Override public boolean isCorrectContext() { - return eventCount != IdeEventQueue.getInstance().getEventCount(); + return edtEventCount == null ? ApplicationManager.getApplication().isDispatchThread() + : edtEventCount != IdeEventQueue.getInstance().getEventCount(); } @Override