Bug 71279 - [Search] NPE in TypeReferenceLocator when moving CU with unresolved type reference
Summary: [Search] NPE in TypeReferenceLocator when moving CU with unresolved type refe...
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.0   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.1 M2   Edit
Assignee: Frederic Fusier CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 98651 (view as bug list)
Depends on:
Blocks:
 
Reported: 2004-08-03 09:29 EDT by Markus Keller CLA
Modified: 2005-06-07 09:30 EDT (History)
2 users (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 2004-08-03 09:29:22 EDT
Eclipse 3.0 + JDT/UI and JDT/Core from HEAD.
Likely introduced by fix for bug 68862.

package p;
public class AA {
	UnresolvedType reference;
}

Refactor > Move "AA.java" to another package.

java.lang.NullPointerException
	at
org.eclipse.jdt.internal.core.search.matching.TypeReferenceLocator.reportDeclaration(TypeReferenceLocator.java:308)
	at
org.eclipse.jdt.internal.core.search.matching.TypeReferenceLocator.matchReportReference(TypeReferenceLocator.java:166)
	at
org.eclipse.jdt.internal.core.search.matching.MatchLocator.reportMatching(MatchLocator.java:1542)
	at
org.eclipse.jdt.internal.core.search.matching.MatchLocator.reportMatching(MatchLocator.java:1632)
	at
org.eclipse.jdt.internal.core.search.matching.MatchLocator.reportMatching(MatchLocator.java:1498)
	at
org.eclipse.jdt.internal.core.search.matching.MatchLocator.process(MatchLocator.java:1162)
	at
org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:766)
	at
org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:805)
	at
org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:921)
	at
org.eclipse.jdt.internal.core.search.JavaSearchParticipant.locateMatches(JavaSearchParticipant.java:94)
	at
org.eclipse.jdt.core.search.SearchEngine.searchDeclarations(SearchEngine.java:1066)
	at
org.eclipse.jdt.core.search.SearchEngine.searchDeclarationsOfReferencedTypes(SearchEngine.java:1213)
	at
org.eclipse.jdt.internal.corext.refactoring.structure.ReferenceFinderUtil.getTypeReferencesIn(ReferenceFinderUtil.java:64)
	at
org.eclipse.jdt.internal.corext.refactoring.structure.ReferenceFinderUtil.getTypeReferencesIn(ReferenceFinderUtil.java:56)
	at
org.eclipse.jdt.internal.corext.refactoring.structure.ReferenceFinderUtil.getTypesReferencedIn(ReferenceFinderUtil.java:47)
	at
org.eclipse.jdt.internal.corext.refactoring.reorg.MoveCuUpdateCreator.addImportToSourcePackageTypes(MoveCuUpdateCreator.java:224)
	at
org.eclipse.jdt.internal.corext.refactoring.reorg.MoveCuUpdateCreator.addUpdates(MoveCuUpdateCreator.java:141)
	at
org.eclipse.jdt.internal.corext.refactoring.reorg.MoveCuUpdateCreator.addUpdates(MoveCuUpdateCreator.java:127)
	at
org.eclipse.jdt.internal.corext.refactoring.reorg.MoveCuUpdateCreator.createChangeManager(MoveCuUpdateCreator.java:91)
	at
org.eclipse.jdt.internal.corext.refactoring.reorg.ReorgPolicyFactory$MoveFilesFoldersAndCusPolicy.createChangeManager(ReorgPolicyFactory.java:1762)
	at
org.eclipse.jdt.internal.corext.refactoring.reorg.ReorgPolicyFactory$MoveFilesFoldersAndCusPolicy.checkFinalConditions(ReorgPolicyFactory.java:1861)
	at
org.eclipse.jdt.internal.corext.refactoring.reorg.JavaMoveProcessor.checkFinalConditions(JavaMoveProcessor.java:182)
	at
org.eclipse.ltk.core.refactoring.participants.ProcessorBasedRefactoring.checkFinalConditions(ProcessorBasedRefactoring.java:134)
	at
org.eclipse.ltk.core.refactoring.CheckConditionsOperation.run(CheckConditionsOperation.java:84)
	at
org.eclipse.ltk.core.refactoring.CreateChangeOperation.run(CreateChangeOperation.java:114)
	at
org.eclipse.ltk.core.refactoring.PerformChangeOperation.run(PerformChangeOperation.java:188)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1673)
	at
org.eclipse.ltk.internal.ui.refactoring.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:58)
	at
org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:101)
Comment 1 Ed Burnette CLA 2004-09-01 15:35:08 EDT
I'm getting what looks like the same error with 3.1M1. It happens a lot when 
moving java files around between packages and projects:

Error Sep 01, 2004 15:24:28.128 Internal Error
java.lang.reflect.InvocationTargetException
at java.lang.Throwable.<init>(Throwable.java)
at java.lang.reflect.InvocationTargetException.<init>
(InvocationTargetException.java:67)
at org.eclipse.jface.operation.ModalContext.run(ModalContext.java)
at org.eclipse.ltk.internal.ui.refactoring.RefactoringWizardDialog2.run
(RefactoringWizardDialog2.java:282)
at org.eclipse.ltk.ui.refactoring.RefactoringWizard.internalPerformFinish
(RefactoringWizard.java:539)
at org.eclipse.ltk.ui.refactoring.UserInputWizardPage.performFinish
(UserInputWizardPage.java:153)
at 
org.eclipse.jdt.internal.ui.refactoring.reorg.ReorgMoveWizard$MoveInputPage.per
formFinish(ReorgMoveWizard.java:106)
at org.eclipse.ltk.ui.refactoring.RefactoringWizard.performFinish
(RefactoringWizard.java:605)
at org.eclipse.ltk.internal.ui.refactoring.RefactoringWizardDialog2.okPressed
(RefactoringWizardDialog2.java:406)
at org.eclipse.jface.dialogs.Dialog.buttonPressed(Dialog.java:390)
at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:537)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java)
at org.eclipse.jface.window.Window.runEventLoop(Window.java)
at org.eclipse.jface.window.Window.open(Window.java:672)
at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation$1.run
(RefactoringWizardOpenOperation.java:125)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java)
at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run
(RefactoringWizardOpenOperation.java:138)
at org.eclipse.jdt.internal.ui.refactoring.actions.RefactoringStarter.activate
(RefactoringStarter.java:40)
at org.eclipse.jdt.internal.ui.refactoring.reorg.ReorgMoveStarter.run
(ReorgMoveStarter.java:87)
at 
org.eclipse.jdt.internal.ui.packageview.SelectionTransferDropAdapter.handleDrop
Move(SelectionTransferDropAdapter.java:208)
at org.eclipse.jdt.internal.ui.packageview.SelectionTransferDropAdapter.drop
(SelectionTransferDropAdapter.java:132)
at org.eclipse.jdt.internal.ui.dnd.JdtViewerDropAdapter.drop
(JdtViewerDropAdapter.java:112)
at org.eclipse.jdt.internal.ui.dnd.DelegatingDropAdapter.drop
(DelegatingDropAdapter.java:79)
at org.eclipse.swt.dnd.DNDListener.handleEvent(DNDListener.java:65)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java)
at org.eclipse.swt.dnd.DropTarget.notifyListeners(DropTarget.java)
at org.eclipse.swt.dnd.DropTarget.Drop(DropTarget.java:428)
at org.eclipse.swt.dnd.DropTarget.access$7(DropTarget.java:363)
at org.eclipse.swt.dnd.DropTarget$3.method6(DropTarget.java:232)
at org.eclipse.swt.internal.ole.win32.COMObject.callback6(COMObject.java:115)
at org.eclipse.swt.internal.ole.win32.COM.DoDragDrop(Native Method)
at org.eclipse.swt.dnd.DragSource.drag(DragSource.java:277)
at org.eclipse.swt.dnd.DragSource.access$0(DragSource.java:263)
at org.eclipse.swt.dnd.DragSource$1.handleEvent(DragSource.java:157)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1435)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1406)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:263)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:144)
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:102)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run
(PlatformActivator.java:335)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:85)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:58)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:60)
at java.lang.reflect.Method.invoke(Method.java:391)
at org.eclipse.core.launcher.Main.basicRun(Main.java:183)
at org.eclipse.core.launcher.Main.run(Main.java:644)
at org.eclipse.core.launcher.Main.main(Main.java:628)
Caused by: java.lang.NullPointerException
at java.lang.Throwable.<init>(Throwable.java)
at java.lang.NullPointerException.<init>(NullPointerException.java:61)
at 
org.eclipse.jdt.internal.core.search.matching.TypeReferenceLocator.reportDeclar
ation(TypeReferenceLocator.java:308)
at 
org.eclipse.jdt.internal.core.search.matching.TypeReferenceLocator.matchReportR
eference(TypeReferenceLocator.java:166)
at org.eclipse.jdt.internal.core.search.matching.MatchLocator.reportMatching
(MatchLocator.java:1408)
at org.eclipse.jdt.internal.core.search.matching.MatchLocator.reportMatching
(MatchLocator.java:1643)
at org.eclipse.jdt.internal.core.search.matching.MatchLocator.reportMatching
(MatchLocator.java:1498)
at org.eclipse.jdt.internal.core.search.matching.MatchLocator.process
(MatchLocator.java:1162)
at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches
(MatchLocator.java:766)
at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches
(MatchLocator.java:805)
at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches
(MatchLocator.java:921)
at org.eclipse.jdt.internal.core.search.JavaSearchParticipant.locateMatches
(JavaSearchParticipant.java:94)
at org.eclipse.jdt.core.search.SearchEngine.searchDeclarations
(SearchEngine.java:1066)
at org.eclipse.jdt.core.search.SearchEngine.searchDeclarationsOfReferencedTypes
(SearchEngine.java:1213)
at 
org.eclipse.jdt.internal.corext.refactoring.structure.ReferenceFinderUtil.getTy
peReferencesIn(ReferenceFinderUtil.java:64)
at 
org.eclipse.jdt.internal.corext.refactoring.structure.ReferenceFinderUtil.getTy
peReferencesIn(ReferenceFinderUtil.java:56)
at 
org.eclipse.jdt.internal.corext.refactoring.structure.ReferenceFinderUtil.getTy
pesReferencedIn(ReferenceFinderUtil.java:47)
at 
org.eclipse.jdt.internal.corext.refactoring.reorg.MoveCuUpdateCreator.addImport
ToSourcePackageTypes(MoveCuUpdateCreator.java:224)
at 
org.eclipse.jdt.internal.corext.refactoring.reorg.MoveCuUpdateCreator.addUpdate
s(MoveCuUpdateCreator.java:141)
at 
org.eclipse.jdt.internal.corext.refactoring.reorg.MoveCuUpdateCreator.addUpdate
s(MoveCuUpdateCreator.java:127)
at 
org.eclipse.jdt.internal.corext.refactoring.reorg.MoveCuUpdateCreator.createCha
ngeManager(MoveCuUpdateCreator.java:91)
at 
org.eclipse.jdt.internal.corext.refactoring.reorg.ReorgPolicyFactory$MoveFilesF
oldersAndCusPolicy.createChangeManager(ReorgPolicyFactory.java:1762)
at 
org.eclipse.jdt.internal.corext.refactoring.reorg.ReorgPolicyFactory$MoveFilesF
oldersAndCusPolicy.checkFinalConditions(ReorgPolicyFactory.java:1861)
at 
org.eclipse.jdt.internal.corext.refactoring.reorg.JavaMoveProcessor.checkFinalC
onditions(JavaMoveProcessor.java:182)
at 
org.eclipse.ltk.core.refactoring.participants.ProcessorBasedRefactoring.checkFi
nalConditions(ProcessorBasedRefactoring.java:134)
at org.eclipse.ltk.core.refactoring.CheckConditionsOperation.run
(CheckConditionsOperation.java:84)
at org.eclipse.ltk.core.refactoring.CreateChangeOperation.run
(CreateChangeOperation.java:114)
at org.eclipse.ltk.core.refactoring.PerformChangeOperation.run
(PerformChangeOperation.java:188)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java)
at org.eclipse.ltk.internal.ui.refactoring.WorkbenchRunnableAdapter.run
(WorkbenchRunnableAdapter.java:58)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run
(ModalContext.java:105)
Root exception:
java.lang.NullPointerException
at java.lang.Throwable.<init>(Throwable.java)
at java.lang.NullPointerException.<init>(NullPointerException.java:61)
at 
org.eclipse.jdt.internal.core.search.matching.TypeReferenceLocator.reportDeclar
ation(TypeReferenceLocator.java:308)
at 
org.eclipse.jdt.internal.core.search.matching.TypeReferenceLocator.matchReportR
eference(TypeReferenceLocator.java:166)
at org.eclipse.jdt.internal.core.search.matching.MatchLocator.reportMatching
(MatchLocator.java:1408)
at org.eclipse.jdt.internal.core.search.matching.MatchLocator.reportMatching
(MatchLocator.java:1643)
at org.eclipse.jdt.internal.core.search.matching.MatchLocator.reportMatching
(MatchLocator.java:1498)
at org.eclipse.jdt.internal.core.search.matching.MatchLocator.process
(MatchLocator.java:1162)
at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches
(MatchLocator.java:766)
at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches
(MatchLocator.java:805)
at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches
(MatchLocator.java:921)
at org.eclipse.jdt.internal.core.search.JavaSearchParticipant.locateMatches
(JavaSearchParticipant.java:94)
at org.eclipse.jdt.core.search.SearchEngine.searchDeclarations
(SearchEngine.java:1066)
at org.eclipse.jdt.core.search.SearchEngine.searchDeclarationsOfReferencedTypes
(SearchEngine.java:1213)
at 
org.eclipse.jdt.internal.corext.refactoring.structure.ReferenceFinderUtil.getTy
peReferencesIn(ReferenceFinderUtil.java:64)
at 
org.eclipse.jdt.internal.corext.refactoring.structure.ReferenceFinderUtil.getTy
peReferencesIn(ReferenceFinderUtil.java:56)
at 
org.eclipse.jdt.internal.corext.refactoring.structure.ReferenceFinderUtil.getTy
pesReferencedIn(ReferenceFinderUtil.java:47)
at 
org.eclipse.jdt.internal.corext.refactoring.reorg.MoveCuUpdateCreator.addImport
ToSourcePackageTypes(MoveCuUpdateCreator.java:224)
at 
org.eclipse.jdt.internal.corext.refactoring.reorg.MoveCuUpdateCreator.addUpdate
s(MoveCuUpdateCreator.java:141)
at 
org.eclipse.jdt.internal.corext.refactoring.reorg.MoveCuUpdateCreator.addUpdate
s(MoveCuUpdateCreator.java:127)
at 
org.eclipse.jdt.internal.corext.refactoring.reorg.MoveCuUpdateCreator.createCha
ngeManager(MoveCuUpdateCreator.java:91)
at 
org.eclipse.jdt.internal.corext.refactoring.reorg.ReorgPolicyFactory$MoveFilesF
oldersAndCusPolicy.createChangeManager(ReorgPolicyFactory.java:1762)
at 
org.eclipse.jdt.internal.corext.refactoring.reorg.ReorgPolicyFactory$MoveFilesF
oldersAndCusPolicy.checkFinalConditions(ReorgPolicyFactory.java:1861)
at 
org.eclipse.jdt.internal.corext.refactoring.reorg.JavaMoveProcessor.checkFinalC
onditions(JavaMoveProcessor.java:182)
at 
org.eclipse.ltk.core.refactoring.participants.ProcessorBasedRefactoring.checkFi
nalConditions(ProcessorBasedRefactoring.java:134)
at org.eclipse.ltk.core.refactoring.CheckConditionsOperation.run
(CheckConditionsOperation.java:84)
at org.eclipse.ltk.core.refactoring.CreateChangeOperation.run
(CreateChangeOperation.java:114)
at org.eclipse.ltk.core.refactoring.PerformChangeOperation.run
(PerformChangeOperation.java:188)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java)
at org.eclipse.ltk.internal.ui.refactoring.WorkbenchRunnableAdapter.run
(WorkbenchRunnableAdapter.java:58)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run
(ModalContext.java:105)


Comment 2 Frederic Fusier CLA 2004-09-08 13:22:39 EDT
Fixed.

[jdt-core-internal]
Type binding (which is a ProblemReferenceBinding) does not have its original
reference binding set => return without reporting in this case...
Change done in TypeReferenceLocator.reportDeclaration(ASTNode...).
Test case added in JavaSearchTests (note that a new project has been created for
this test - JavaSearchBugs - otherwise other tests were impacted by this new
test case...)
Comment 3 David Audel CLA 2004-09-23 10:15:02 EDT
Verified in I200409240100.
Comment 4 Olivier Thomann CLA 2005-06-07 09:30:56 EDT
*** Bug 98651 has been marked as a duplicate of this bug. ***