From fd3c65d97070c8108b1419d524009d78ff5c214e Mon Sep 17 00:00:00 2001 From: Konstantin Bulenkov Date: Tue, 19 Apr 2011 15:21:02 +0400 Subject: [PATCH] NPE fixes --- .../openapi/diff/impl/dir/DirDiffPanel.java | 13 ++++++++++--- .../openapi/diff/impl/dir/DirDiffTableModel.java | 1 + 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/platform/vcs-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffPanel.java b/platform/vcs-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffPanel.java index 4a46a88d7130..1c2c4a1d05c0 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffPanel.java +++ b/platform/vcs-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffPanel.java @@ -85,6 +85,7 @@ public class DirDiffPanel { } else { final DirDiffElement element = myModel.getElementAt(myTable.getSelectedRow()); + if (element == null) return; final Project project = myModel.getProject(); clearDiffPanel(); if (element.getType() == DType.CHANGED) { @@ -120,18 +121,24 @@ public class DirDiffPanel { int row = myTable.getSelectedRow(); if (keyCode == KeyEvent.VK_DOWN && row != rows - 1) { row++; - if (myModel.getElementAt(row).isSeparator()) { + final DirDiffElement element = myModel.getElementAt(row); + if (element == null) return; + if (element.isSeparator()) { row++; } } else if (keyCode == KeyEvent.VK_UP && row != 0) { row--; - if (myModel.getElementAt(row).isSeparator()) { + final DirDiffElement element = myModel.getElementAt(row); + if (element == null) return; + if (element.isSeparator()) { row--; } } else { return; } - if (0 <= row && row < rows && !myModel.getElementAt(row).isSeparator()) { + final DirDiffElement element = myModel.getElementAt(row); + if (element == null) return; + if (!element.isSeparator()) { e.consume(); myTable.changeSelection(row, (myModel.getColumnCount() - 1) / 2, false, false); } diff --git a/platform/vcs-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffTableModel.java b/platform/vcs-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffTableModel.java index 8d1bd4535775..9288efbfeb99 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffTableModel.java +++ b/platform/vcs-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffTableModel.java @@ -120,6 +120,7 @@ public class DirDiffTableModel extends AbstractTableModel { return "Diff for " + mySrc.getPath() + " and " + myTrg.getPath(); } + @Nullable public DirDiffElement getElementAt(int index) { return 0 <= index && index < myElements.size() ? myElements.get(index) : null; }