From 498fb7654dce09c19f8c09c194ebf3f1275ead48 Mon Sep 17 00:00:00 2001 From: Pavel Fatin Date: Mon, 18 Oct 2010 17:10:29 +0400 Subject: [PATCH] IOOBE fix in TableExpandableItemsHandler --- .../src/com/intellij/ui/TableExpandableItemsHandler.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/platform/platform-impl/src/com/intellij/ui/TableExpandableItemsHandler.java b/platform/platform-impl/src/com/intellij/ui/TableExpandableItemsHandler.java index 064acde4e80a..437f692efea1 100644 --- a/platform/platform-impl/src/com/intellij/ui/TableExpandableItemsHandler.java +++ b/platform/platform-impl/src/com/intellij/ui/TableExpandableItemsHandler.java @@ -88,8 +88,11 @@ public class TableExpandableItemsHandler extends AbstractExpandableItemsHandler< }); } + // This method may be called from TableModelListener (before selection model update) + // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4730055 private void updateSelection(JTable table) { - int row = table.getSelectedRowCount() == 1 ? table.getSelectedRow() : -1; + boolean hasSingleSelection = table.getSelectedRow() < table.getModel().getRowCount() && table.getSelectedRowCount() == 1; + int row = hasSingleSelection ? table.getSelectedRow() : -1; int column = table.getSelectedColumnCount() == 1 ? table.getSelectedColumn() : -1; handleSelectionChange((row == -1 || column == -1) ? null : new TableCell(row, column)); }