Bug 161028 - [search] NPE on organize imports in TypeNameMatch.equals
Summary: [search] NPE on organize imports in TypeNameMatch.equals
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.3   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.3 M3   Edit
Assignee: Frederic Fusier CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-10-16 06:44 EDT by Benno Baumgartner CLA
Modified: 2006-10-30 14:29 EST (History)
1 user (show)

See Also:


Attachments
patch of my workspace (18.98 KB, patch)
2006-10-16 06:44 EDT, Benno Baumgartner CLA
no flags Details | Diff
Proposed patch (26.97 KB, patch)
2006-10-16 12:02 EDT, Frederic Fusier CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Benno Baumgartner CLA 2006-10-16 06:44:03 EDT
I20061010-0800

I can reproduce it:
1. Apply patch in attachement to a workspace with JDT/UI
2. Open CleanUpRefactoringWizard
3. Organize Imports
4. Select o.e.s.w.Text
Is:

Error
Mon Oct 16 12:37:06 CEST 2006
Failed to execute runnable (java.lang.NullPointerException)

org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.NullPointerException)
at org.eclipse.swt.SWT.error(SWT.java:3407)
at org.eclipse.swt.SWT.error(SWT.java:3330)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:126)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3375)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3025)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:820)
at org.eclipse.jface.window.Window.open(Window.java:796)
at org.eclipse.ui.dialogs.AbstractElementListSelectionDialog.open(AbstractElementListSelectionDialog.java:426)
at org.eclipse.jdt.internal.ui.dialogs.MultiElementListSelectionDialog.open(MultiElementListSelectionDialog.java:110)
at org.eclipse.jdt.ui.actions.OrganizeImportsAction.doChooseImports(OrganizeImportsAction.java:559)
at org.eclipse.jdt.ui.actions.OrganizeImportsAction.access$1(OrganizeImportsAction.java:541)
at org.eclipse.jdt.ui.actions.OrganizeImportsAction$4.chooseImports(OrganizeImportsAction.java:536)
at org.eclipse.jdt.internal.corext.codemanipulation.OrganizeImportsOperation.run(OrganizeImportsOperation.java:488)
at org.eclipse.jdt.internal.core.BatchOperation.executeOperation(BatchOperation.java:39)
at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:720)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1742)
at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:4050)
at org.eclipse.jdt.internal.ui.actions.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:87)
at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:369)
at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:313)
at org.eclipse.jface.window.ApplicationWindow$1.run(ApplicationWindow.java:767)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
at org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:764)
at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2280)
at org.eclipse.ui.internal.progress.ProgressManager$5.run(ProgressManager.java:1130)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
at org.eclipse.ui.internal.progress.ProgressManager.runInUI(ProgressManager.java:1123)
at org.eclipse.jdt.ui.actions.OrganizeImportsAction.run(OrganizeImportsAction.java:497)
at org.eclipse.jdt.ui.actions.OrganizeImportsAction.run(OrganizeImportsAction.java:306)
at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:272)
at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:244)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:499)
at org.eclipse.ui.commands.ActionHandler.execute(ActionHandler.java:185)
at org.eclipse.ui.internal.handlers.LegacyHandlerWrapper.execute(LegacyHandlerWrapper.java:109)
at org.eclipse.core.commands.Command.executeWithChecks(Command.java:461)
at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:424)
at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:160)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:465)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:793)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:840)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:563)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$3(WorkbenchKeyboard.java:505)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard$KeyDownFilter.handleEvent(WorkbenchKeyboard.java:122)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Display.filterEvent(Display.java:996)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:927)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:952)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:937)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:965)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:961)
at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1275)
at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:3363)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:3263)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4067)
at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1983)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3020)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1916)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1880)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:419)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:95)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:74)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:348)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:165)
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:585)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:341)
at org.eclipse.core.launcher.Main.basicRun(Main.java:285)
at org.eclipse.core.launcher.Main.run(Main.java:987)
at org.eclipse.core.launcher.Main.main(Main.java:962)
Caused by: java.lang.NullPointerException
at org.eclipse.jdt.core.search.TypeNameMatch.equals(TypeNameMatch.java:54)
at org.eclipse.ui.dialogs.AbstractElementListSelectionDialog.handleWidgetSelected(AbstractElementListSelectionDialog.java:376)
at org.eclipse.ui.dialogs.AbstractElementListSelectionDialog.access$0(AbstractElementListSelectionDialog.java:368)
at org.eclipse.ui.dialogs.AbstractElementListSelectionDialog$1.widgetSelected(AbstractElementListSelectionDialog.java:358)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:90)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:928)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:952)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:937)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:709)
at org.eclipse.ui.dialogs.FilteredList$TableUpdateJob.selectAndNotify(FilteredList.java:672)
at org.eclipse.ui.dialogs.FilteredList$TableUpdateJob.defaultSelect(FilteredList.java:657)
at org.eclipse.ui.dialogs.FilteredList$TableUpdateJob.runInUIThread(FilteredList.java:619)
at org.eclipse.ui.progress.UIJob$1.run(UIJob.java:94)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123)
... 72 more

Not sure if this works for you though...
Comment 1 Benno Baumgartner CLA 2006-10-16 06:44:36 EDT
Created attachment 52022 [details]
patch of my workspace
Comment 2 Frederic Fusier CLA 2006-10-16 12:02:29 EDT
Created attachment 52038 [details]
Proposed patch

I take advantage of this bug to include TypeNameMatch API polishing after agreement concluded with Martin.
Comment 3 Frederic Fusier CLA 2006-10-16 12:03:36 EDT
Release for 3.3 M3 in HEAD stream.

Test case added in JavaSearchBugsTests#testBug161028().
Comment 4 Frederic Fusier CLA 2006-10-29 07:52:01 EST
Comment 3 should read "Released for 3.3 M3." instead!
Comment 5 Olivier Thomann CLA 2006-10-30 14:29:35 EST
Verified for 3.3 M3 using warm-up build I20061030-0800 by checking the code.