diff --git a/platform/platform-impl/src/com/intellij/ide/IdeEventQueue.java b/platform/platform-impl/src/com/intellij/ide/IdeEventQueue.java index 3d4d06dee39a..59f4c14f09dd 100644 --- a/platform/platform-impl/src/com/intellij/ide/IdeEventQueue.java +++ b/platform/platform-impl/src/com/intellij/ide/IdeEventQueue.java @@ -357,7 +357,6 @@ public class IdeEventQueue extends EventQueue { boolean loaded = IdeaApplication.isLoaded(); if (loaded) { ourAppIsLoaded = true; - ourTransactionGuard = (TransactionGuardImpl)TransactionGuard.getInstance(); } return loaded; } @@ -389,7 +388,7 @@ public class IdeEventQueue extends EventQueue { myCurrentEvent = e; boolean userActivity = myIsInInputEvent || e instanceof ItemEvent; - try (AccessToken ignored = ourTransactionGuard == null ? null : ourTransactionGuard.startActivity(userActivity)) { + try (AccessToken ignored = startActivity(userActivity)) { _dispatchEvent(e, false); } catch (Throwable t) { @@ -409,6 +408,14 @@ public class IdeEventQueue extends EventQueue { } } + @Nullable + private static AccessToken startActivity(boolean userActivity) { + if (ourTransactionGuard == null && appIsLoaded()) { + ourTransactionGuard = (TransactionGuardImpl)TransactionGuard.getInstance(); + } + return ourTransactionGuard == null ? null : ourTransactionGuard.startActivity(userActivity); + } + private void processException(Throwable t) { if (!myToolkitBugsProcessor.process(t)) { PluginManager.processException(t);