Bug 43080 - NPE when searching in CU with incomplete method declaration
Summary: NPE when searching in CU with incomplete method declaration
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.0   Edit
Hardware: PC Windows XP
: P3 critical (vote)
Target Milestone: 3.0 M4   Edit
Assignee: Jerome Lanneluc CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 43086 (view as bug list)
Depends on:
Blocks:
 
Reported: 2003-09-15 06:26 EDT by Markus Keller CLA
Modified: 2003-10-08 07:48 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Markus Keller CLA 2003-09-15 06:26:01 EDT
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)
Comment 1 Jerome Lanneluc CLA 2003-09-15 07:26:57 EDT
Reproduced. Fixed in latest
Comment 2 Jerome Lanneluc CLA 2003-09-15 07:42:55 EDT
Added protection in MethodLocator.match(MethodDeclaration, MatchingNodeSet) and 
added regression test JavaSearchTest.testMethodDeclarationNoReturnType()
Comment 3 Philipe Mulet CLA 2003-09-15 09:27:19 EDT
*** Bug 43086 has been marked as a duplicate of this bug. ***
Comment 4 David Audel CLA 2003-10-08 07:48:16 EDT
Verified.