From 9b820f73171dfcdc9a3b834e92d35dc37f8b0690 Mon Sep 17 00:00:00 2001 From: Denis Fokin Date: Tue, 22 Jul 2014 17:53:59 +0400 Subject: [PATCH] IDEA-127679 ArrayIndexOutOfBoundsException if no default or focused button is specified --- .../src/com/intellij/ui/messages/JBMacMessages.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ui/messages/JBMacMessages.java b/platform/platform-impl/src/com/intellij/ui/messages/JBMacMessages.java index 6ce0375e75aa..2a70b61c6e8a 100644 --- a/platform/platform-impl/src/com/intellij/ui/messages/JBMacMessages.java +++ b/platform/platform-impl/src/com/intellij/ui/messages/JBMacMessages.java @@ -73,10 +73,14 @@ public class JBMacMessages extends MacMessagesEmulation { Icon icon = errorStyle ? UIUtil.getErrorIcon() : UIUtil.getInformationIcon(); - focusedOptionIndex = (defaultOptionIndex == focusedOptionIndex) ? buttons.length - 1 : focusedOptionIndex; + if (focusedOptionIndex != -1) { + focusedOptionIndex = (defaultOptionIndex == focusedOptionIndex) ? buttons.length - 1 : focusedOptionIndex; + } - SheetMessage sheetMessage = new SheetMessage(window, title, message, icon, buttons, doNotAskDialogOption, buttons[defaultOptionIndex], - buttons[focusedOptionIndex]); + final String defaultOptionTitle = defaultOptionIndex == -1 ? null : buttons[defaultOptionIndex]; + final String focusedButtonTitle = focusedOptionIndex == -1 ? null : buttons[focusedOptionIndex]; + + final SheetMessage sheetMessage = new SheetMessage(window, title, message, icon, buttons, doNotAskDialogOption, defaultOptionTitle, focusedButtonTitle); String result = sheetMessage.getResult(); for (int i = 0; i < buttons.length; i++) { if (result.equals(buttons[i])) {