394809: ArrayIndexOutOfBoundsException when selecting the down arrow in
the R4E navigator view
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=394809
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/internal/commands/handlers/SelectNextHandler.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/internal/commands/handlers/SelectNextHandler.java
index d9ba76a..974ce45 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/internal/commands/handlers/SelectNextHandler.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/internal/commands/handlers/SelectNextHandler.java
@@ -76,7 +76,7 @@
public IStatus runInUIThread(IProgressMonitor monitor) {
monitor.beginTask(COMMAND_MESSAGE, 1);
- if (!selectedElements.isEmpty()) {
+ if (selectedElements != null && !selectedElements.isEmpty()) {
final ReviewNavigatorView view = R4EUIModelController.getNavigatorView();
//Get the previous element
@@ -113,8 +113,14 @@
* @return IR4EUIModelElement
*/
private IR4EUIModelElement getNextElement(ReviewNavigatorTreeViewer aTreeViewer) {
- final TreeItem item = aTreeViewer.getTree().getSelection()[0];
- final TreeItem nextItem = aTreeViewer.getNext(item);
- return (IR4EUIModelElement) nextItem.getData();
+ final TreeItem[] item = aTreeViewer.getTree().getSelection();
+ if (item.length == 0) {
+ //No item selected, so just return
+ return null;
+ } else {
+ final TreeItem nextItem = aTreeViewer.getNext(item[0]);
+ return (IR4EUIModelElement) nextItem.getData();
+
+ }
}
}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/internal/commands/handlers/SelectPreviousHandler.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/internal/commands/handlers/SelectPreviousHandler.java
index 80766d8..afc054a 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/internal/commands/handlers/SelectPreviousHandler.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/internal/commands/handlers/SelectPreviousHandler.java
@@ -76,7 +76,7 @@
public IStatus runInUIThread(IProgressMonitor monitor) {
monitor.beginTask(COMMAND_MESSAGE, 1);
- if (!selectedElements.isEmpty()) {
+ if (selectedElements != null && !selectedElements.isEmpty()) {
final ReviewNavigatorView view = R4EUIModelController.getNavigatorView();
//Get the previous element
@@ -113,8 +113,14 @@
* @return IR4EUIModelElement
*/
private IR4EUIModelElement getPreviousElement(ReviewNavigatorTreeViewer aTreeViewer) {
- final TreeItem item = aTreeViewer.getTree().getSelection()[0];
- final TreeItem previousItem = aTreeViewer.getPrevious(item);
- return (IR4EUIModelElement) previousItem.getData();
+ final TreeItem[] item = aTreeViewer.getTree().getSelection();
+ if (item.length == 0) {
+ //No item selected, so just return
+ return null;
+ } else {
+ final TreeItem previousItem = aTreeViewer.getPrevious(item[0]);
+ return (IR4EUIModelElement) previousItem.getData();
+ }
+
}
}