From 42b05fea5979c6dd31dbd3f0966473ae0b40faaa Mon Sep 17 00:00:00 2001 From: Dmitry Gridin Date: Thu, 21 Apr 2022 13:59:23 +0700 Subject: [PATCH] IDEA-261479 RecentProjectsFullScreenTabSupport: fix AIOOBE in headless mode java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0 at com.intellij.ui.mac.MergeAllWindowsAction$RecentProjectsFullScreenTabSupport.appStarted(MergeAllWindowsAction.java:74) at com.intellij.util.messages.impl.MessageBusImplKt.invokeMethod(MessageBusImpl.kt:647) at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:630) at com.intellij.util.messages.impl.MessageBusImplKt.deliverMessage(MessageBusImpl.kt:400) at com.intellij.util.messages.impl.MessageBusImplKt.pumpWaiting(MessageBusImpl.kt:379) at com.intellij.util.messages.impl.MessageBusImplKt.access$pumpWaiting(MessageBusImpl.kt:1) at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:438) at jdk.proxy2/jdk.proxy2.$Proxy24.appStarted(Unknown Source) at fleet.backend.FleetStarter.main(FleetStarter.kt:85) at com.intellij.idea.ApplicationLoader$initApplication$4$1$1.run(ApplicationLoader.kt:183) at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:106) at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:95) at com.intellij.idea.ApplicationLoader$initApplication$4$1.run(ApplicationLoader.kt:182) at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:215) at com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:22) at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:197) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:874) at com.intellij.openapi.application.impl.ApplicationImpl$3.run(ApplicationImpl.java:511) at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:69) at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:112) at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:42) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:777) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:728) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:747) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:898) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:746) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:439) at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:813) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:438) at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:106) at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:604) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:436) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:874) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:484) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90) GitOrigin-RevId: 2fa6117fe6db1e63132fb3ab3c306e35594a8c92 --- .../src/com/intellij/ui/mac/MergeAllWindowsAction.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/platform/platform-impl/src/com/intellij/ui/mac/MergeAllWindowsAction.java b/platform/platform-impl/src/com/intellij/ui/mac/MergeAllWindowsAction.java index 367da6beeaf3..c5b08d70bc7a 100644 --- a/platform/platform-impl/src/com/intellij/ui/mac/MergeAllWindowsAction.java +++ b/platform/platform-impl/src/com/intellij/ui/mac/MergeAllWindowsAction.java @@ -62,6 +62,10 @@ public class MergeAllWindowsAction extends DumbAwareAction { public void appStarted() { if (JdkEx.isTabbingModeAvailable()) { IdeFrame[] frames = WindowManager.getInstance().getAllProjectFrames(); + if (frames.length == 0) { + return; + } + if (frames.length > 1) { for (IdeFrame frame : frames) { if (!frame.isInFullScreen()) {