Community
Participate
Working Groups
3.2 M3 test pass - have the following two CUs in the 'org.foo' package: ----- Foo.java ----- public class Foo { int bar= Bar.FOO; } ----- Bar.java ----- class Bar { private static final int FOO= 0; } -------------------- - note the compile error in Foo due to FOO being private - in Bar.java, select FOO and choose Refactor>Move, target to type 'Foo' > get this: !ENTRY org.eclipse.ltk.ui.refactoring 4 10000 2005-11-01 16:28:48.229 !MESSAGE Internal Error !STACK 0 java.lang.reflect.InvocationTargetException at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:327) at org.eclipse.ltk.internal.ui.refactoring.RefactoringWizardDialog2.run(RefactoringWizardDialog2.java:293) at org.eclipse.ltk.ui.refactoring.RefactoringWizard.createChange(RefactoringWizard.java:573) at org.eclipse.ltk.ui.refactoring.RefactoringWizard.computeUserInputSuccessorPage(RefactoringWizard.java:416) at org.eclipse.ltk.ui.refactoring.UserInputWizardPage.computeSuccessorPage(UserInputWizardPage.java:74) at org.eclipse.ltk.ui.refactoring.UserInputWizardPage.getNextPage(UserInputWizardPage.java:114) at org.eclipse.jdt.internal.ui.refactoring.MoveMembersWizard$MoveMembersInputPage.getNextPage(MoveMembersWizard.java:201) at org.eclipse.ltk.internal.ui.refactoring.RefactoringWizardDialog2.previewPressed(RefactoringWizardDialog2.java:447) at org.eclipse.ltk.internal.ui.refactoring.RefactoringWizardDialog2.access$3(RefactoringWizardDialog2.java:445) at org.eclipse.ltk.internal.ui.refactoring.RefactoringWizardDialog2$1.widgetSelected(RefactoringWizardDialog2.java:587) 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:1056) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3061) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2743) at org.eclipse.jface.window.Window.runEventLoop(Window.java:809) at org.eclipse.jface.window.Window.open(Window.java:787) at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation$1.run(RefactoringWizardOpenOperation.java:131) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69) at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run(RefactoringWizardOpenOperation.java:144) at org.eclipse.jdt.internal.ui.refactoring.actions.RefactoringStarter.activate(RefactoringStarter.java:40) at org.eclipse.jdt.internal.corext.refactoring.RefactoringExecutionStarter.startMoveStaticMembersRefactoring(RefactoringExecutionStarter.java:300) at org.eclipse.jdt.internal.ui.refactoring.actions.MoveStaticMembersAction.run(MoveStaticMembersAction.java:110) at org.eclipse.jdt.ui.actions.MoveAction.tryMoveStaticMembers(MoveAction.java:164) at org.eclipse.jdt.ui.actions.MoveAction.run(MoveAction.java:142) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:226) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:198) at org.eclipse.jface.action.Action.runWithEvent(Action.java:996) at org.eclipse.ui.commands.ActionHandler.execute(ActionHandler.java:182) at org.eclipse.ui.internal.handlers.LegacyHandlerWrapper.execute(LegacyHandlerWrapper.java:108) at org.eclipse.core.commands.Command.execute(Command.java:287) at org.eclipse.core.commands.ParameterizedCommand.execute(ParameterizedCommand.java:401) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:459) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:781) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:828) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:550) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$3(WorkbenchKeyboard.java:493) at org.eclipse.ui.internal.keys.WorkbenchKeyboard$KeyDownFilter.handleEvent(WorkbenchKeyboard.java:117) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66) at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1247) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1055) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1080) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1065) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1092) at org.eclipse.swt.widgets.Widget.gtk_key_press_event(Widget.java:646) at org.eclipse.swt.widgets.Control.gtk_key_press_event(Control.java:1982) at org.eclipse.swt.widgets.Composite.gtk_key_press_event(Composite.java:566) at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1401) at org.eclipse.swt.widgets.Display.windowProc(Display.java:3693) at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method) at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:4955) at org.eclipse.swt.widgets.Display.eventProc(Display.java:1062) at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method) at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:1308) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2741) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1774) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1738) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:376) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:106) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:226) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:376) 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:338) at org.eclipse.core.launcher.Main.basicRun(Main.java:282) at org.eclipse.core.launcher.Main.run(Main.java:977) at org.eclipse.core.launcher.Main.main(Main.java:952) Caused by: java.lang.NullPointerException at org.eclipse.jdt.internal.core.search.matching.FieldLocator.matchReportReference(FieldLocator.java:199) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.reportMatching(MatchLocator.java:2089) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.reportMatching(MatchLocator.java:2212) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.reportMatching(MatchLocator.java:2023) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.process(MatchLocator.java:1471) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:958) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:999) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1117) at org.eclipse.jdt.internal.core.search.JavaSearchParticipant.locateMatches(JavaSearchParticipant.java:94) at org.eclipse.jdt.internal.core.search.BasicSearchEngine.findMatches(BasicSearchEngine.java:208) at org.eclipse.jdt.internal.core.search.BasicSearchEngine.search(BasicSearchEngine.java:464) at org.eclipse.jdt.core.search.SearchEngine.search(SearchEngine.java:532) at org.eclipse.jdt.internal.corext.refactoring.RefactoringSearchEngine2.searchPattern(RefactoringSearchEngine2.java:476) at org.eclipse.jdt.internal.corext.refactoring.structure.MemberVisibilityAdjustor.adjustVisibility(MemberVisibilityAdjustor.java:783) at org.eclipse.jdt.internal.corext.refactoring.structure.MoveStaticMembersProcessor.createChange(MoveStaticMembersProcessor.java:652) at org.eclipse.jdt.internal.corext.refactoring.structure.MoveStaticMembersProcessor.checkFinalConditions(MoveStaticMembersProcessor.java:320) at org.eclipse.ltk.core.refactoring.participants.ProcessorBasedRefactoring.checkFinalConditions(ProcessorBasedRefactoring.java:169) at org.eclipse.ltk.core.refactoring.CheckConditionsOperation.run(CheckConditionsOperation.java:84) at org.eclipse.ltk.core.refactoring.CreateChangeOperation.run(CreateChangeOperation.java:117) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1705) at org.eclipse.ltk.internal.ui.refactoring.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:86) at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:113)
Moving to Core. The NPE happens in the search engine (match locator).
Unfortunately this NPE may happen in 3.1 as it has been introduced while implementing search for generics :-( Surely a good candidate for 3.1.2... Philippe, do you agree?
Created attachment 29079 [details] Patch to fix this issue
Fixed and released in HEAD. Setting target to 3.2 M4 waiting for acknowledgement to report it in R3_1_maintenance stream.
+1 for 3.1.2
Released in R3_1_maintenance stream.
The NPE doesn't happen anymore, but the resulting cu looks wrong: package org.foo; public class Foo { int bar= Bar.FOO; private static final int FOO= 0; } Because FOO has been moved to the Foo class, Bar.FOO is reported as an error. Verified for 3.2M4 in I20051212-2000 because the NPE doesn't occur anymore. Open bug 120583 for the wrong CU contents.
Verified for 3.1.2 using build M20060109-1200.