Community
Participate
Working Groups
N20030915 class A{ native m(); } - select "m" - Refactor > Rename..., to "k" -> NPE in PatternLocator.matchesTypeReference() is logged. This worked with the last I-build, even though the method has no return type. The same NPE is thrown when searching for method declaration "m() int" in the search dialog. !ENTRY org.eclipse.jdt.ui 4 10001 Sep 15, 2003 12:14:17.843 !MESSAGE Internal Error !STACK 0 java.lang.reflect.InvocationTargetException at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:283) at org.eclipse.jdt.internal.ui.refactoring.RefactoringWizardDialog2.run(RefactoringWizardDialog2.java:271) at org.eclipse.jdt.internal.ui.refactoring.RefactoringWizard.internalCheckCondition(RefactoringWizard.java:430) at org.eclipse.jdt.internal.ui.refactoring.RefactoringWizard.checkInput(RefactoringWizard.java:415) at org.eclipse.jdt.internal.ui.refactoring.UserInputWizardPage.performFinish(UserInputWizardPage.java:111) at org.eclipse.jdt.internal.ui.refactoring.RefactoringWizard.performFinish(RefactoringWizard.java:472) at org.eclipse.jdt.internal.ui.refactoring.RefactoringWizardDialog2.okPressed(RefactoringWizardDialog2.java:395) at org.eclipse.jface.dialogs.Dialog.buttonPressed(Dialog.java:256) at org.eclipse.jface.dialogs.Dialog$1.widgetSelected(Dialog.java:423) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:89) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:847) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2187) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1877) at org.eclipse.jface.window.Window.runEventLoop(Window.java:583) at org.eclipse.jface.window.Window.open(Window.java:563) at org.eclipse.jdt.internal.ui.refactoring.actions.RefactoringStarter.activate(RefactoringStarter.java:56) at org.eclipse.jdt.internal.ui.refactoring.UserInterfaceStarter.activate(UserInterfaceStarter.java:97) at org.eclipse.jdt.internal.ui.refactoring.reorg.RenameUserInterfaceStarter.activate(RenameUserInterfaceStarter.java:111) at org.eclipse.jdt.internal.ui.refactoring.reorg.RenameMethodUserInterfaceStarter.activate(RenameMethodUserInterfaceStarter.java:62) at org.eclipse.jdt.internal.ui.refactoring.UserInterfaceStarter.run(UserInterfaceStarter.java:52) at org.eclipse.jdt.internal.ui.refactoring.reorg.RenameRefactoringAction.run(RenameRefactoringAction.java:73) at org.eclipse.jdt.ui.refactoring.RenameSupport.openDialog(RenameSupport.java:93) at org.eclipse.jdt.internal.ui.refactoring.actions.RenameJavaElementAction.run(RenameJavaElementAction.java:145) at org.eclipse.jdt.internal.ui.refactoring.actions.RenameJavaElementAction.run(RenameJavaElementAction.java:108) at org.eclipse.jdt.ui.actions.RenameAction.run(RenameAction.java:127) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:196) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:172) at org.eclipse.jface.action.Action.runWithEvent(Action.java:842) at org.eclipse.ui.internal.commands.ActionHandler.execute(ActionHandler.java:44) at org.eclipse.ui.internal.Workbench.press(Workbench.java:454) at org.eclipse.ui.internal.Workbench$2.handleEvent(Workbench.java:212) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Display.filterEvent(Display.java:646) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:846) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:871) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:856) at org.eclipse.swt.widgets.Control.traverse(Control.java:2658) at org.eclipse.swt.widgets.Control.translateMnemonic(Control.java:2505) at org.eclipse.swt.widgets.Composite.translateMnemonic(Composite.java:552) at org.eclipse.swt.widgets.Control.translateMnemonic(Control.java:2518) at org.eclipse.swt.widgets.Display.translateMnemonic(Display.java:2599) at org.eclipse.swt.widgets.Display.filterMessage(Display.java:660) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1873) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2037) at org.eclipse.ui.internal.Workbench.run(Workbench.java:2020) at org.eclipse.core.internal.boot.InternalBootLoader.run(InternalBootLoader.java:858) at org.eclipse.core.boot.BootLoader.run(BootLoader.java:461) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.eclipse.core.launcher.Main.basicRun(Main.java:295) at org.eclipse.core.launcher.Main.run(Main.java:751) at org.eclipse.core.launcher.Main.main(Main.java:587) Caused by: java.lang.NullPointerException at org.eclipse.jdt.internal.core.search.matching.PatternLocator.matchesTypeReference(PatternLocator.java:134) at org.eclipse.jdt.internal.core.search.matching.MethodLocator.match(MethodLocator.java:72) at org.eclipse.jdt.internal.core.search.matching.MatchLocatorParser$ClassButNoMethodDeclarationVisitor.visit(MatchLocatorParser.java:74) at org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.traverse(MethodDeclaration.java:144) at org.eclipse.jdt.internal.core.search.matching.MatchLocatorParser.parseBodies(MatchLocatorParser.java:213) at org.eclipse.jdt.internal.core.search.matching.MatchLocatorParser.parseBodies(MatchLocatorParser.java:188) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.getMethodBodies(MatchLocator.java:488) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.process(MatchLocator.java:822) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:565) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:602) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:711) at org.eclipse.jdt.core.search.SearchEngine.search(SearchEngine.java:515) at org.eclipse.jdt.internal.corext.refactoring.RefactoringSearchEngine.internalSearch(RefactoringSearchEngine.java:151) at org.eclipse.jdt.internal.corext.refactoring.RefactoringSearchEngine.search(RefactoringSearchEngine.java:114) at org.eclipse.jdt.internal.corext.refactoring.RefactoringSearchEngine.search(RefactoringSearchEngine.java:106) at org.eclipse.jdt.internal.corext.refactoring.rename.RenameMethodProcessor.getOccurrences(RenameMethodProcessor.java:260) at org.eclipse.jdt.internal.corext.refactoring.rename.RenameMethodProcessor.checkInput(RenameMethodProcessor.java:195) at org.eclipse.jdt.internal.corext.refactoring.rename.RenameVirtualMethodProcessor.checkInput(RenameVirtualMethodProcessor.java:90) at org.eclipse.jdt.internal.corext.refactoring.rename.RenameRefactoring.checkInput(RenameRefactoring.java:160) at org.eclipse.jdt.internal.ui.refactoring.CheckConditionsOperation.run(CheckConditionsOperation.java:65) at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:101)
Reproduced. Fixed in latest
Added protection in MethodLocator.match(MethodDeclaration, MatchingNodeSet) and added regression test JavaSearchTest.testMethodDeclarationNoReturnType()
*** Bug 43086 has been marked as a duplicate of this bug. ***
Verified.