From b2e27cfbfc26fdf3602b01b7dd447896663decbe Mon Sep 17 00:00:00 2001 From: Alexander Zolotov Date: Wed, 24 Dec 2014 17:14:40 +0300 Subject: [PATCH] Avoid IOOBE in Registry --- .../openapi/util/registry/RegistryUi.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/openapi/util/registry/RegistryUi.java b/platform/lang-impl/src/com/intellij/openapi/util/registry/RegistryUi.java index e0fcb7440100..0433c92ebf5b 100644 --- a/platform/lang-impl/src/com/intellij/openapi/util/registry/RegistryUi.java +++ b/platform/lang-impl/src/com/intellij/openapi/util/registry/RegistryUi.java @@ -142,13 +142,15 @@ public class RegistryUi implements Disposable { public void keyPressed(@NotNull KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_SPACE) { int row = myTable.getSelectedRow(); - RegistryValue rv = myModel.getRegistryValue(row); - if (rv.isBoolean()) { - rv.setValue(!rv.asBoolean()); - keyChanged(rv.getKey()); - for (int i : new int[]{0, 1, 2}) myModel.fireTableCellUpdated(row, i); - revaliateActions(); - if (search.isPopupActive()) search.hidePopup(); + if (row != -1) { + RegistryValue rv = myModel.getRegistryValue(row); + if (rv.isBoolean()) { + rv.setValue(!rv.asBoolean()); + keyChanged(rv.getKey()); + for (int i : new int[]{0, 1, 2}) myModel.fireTableCellUpdated(row, i); + revaliateActions(); + if (search.isPopupActive()) search.hidePopup(); + } } } }