diff --git a/java/java-impl/src/com/intellij/find/findUsages/JavaFindUsagesHandler.java b/java/java-impl/src/com/intellij/find/findUsages/JavaFindUsagesHandler.java index ac8ce9e62a65..418864150f3f 100644 --- a/java/java-impl/src/com/intellij/find/findUsages/JavaFindUsagesHandler.java +++ b/java/java-impl/src/com/intellij/find/findUsages/JavaFindUsagesHandler.java @@ -117,13 +117,16 @@ public class JavaFindUsagesHandler extends FindUsagesHandler{ for (int i = 0; i < overrides.length; i++) { overrides[i] = (PsiMethod)overrides[i].getNavigationElement(); } - PsiElement[] elementsToSearch = new PsiElement[overrides.length + 1]; - elementsToSearch[0] = parameter; + List elementsToSearch = new ArrayList(overrides.length + 1); + elementsToSearch.add(parameter); int idx = method.getParameterList().getParameterIndex(parameter); - for (int i = 0; i < overrides.length; i++) { - elementsToSearch[i + 1] = overrides[i].getParameterList().getParameters()[idx]; + for (PsiMethod override : overrides) { + final PsiParameter[] parameters = override.getParameterList().getParameters(); + if (idx < parameters.length) { + elementsToSearch.add(parameters[idx]); + } } - return elementsToSearch; + return elementsToSearch.toArray(new PsiElement[elementsToSearch.size()]); }