Community
Participate
Working Groups
Build Identifier: I20110518-2200 After renaming the class (ie. via Refactor->Rename) and then attempting to open the super implementation of any of its methods (not by F3-ing on a super.method() call though) by clicking on the green up-arrow of overrideness (on the left of the method name, see picture), then an error dialog appears instead of the actual open in editor. this was in e4 4.1.0 I20110518-2200 Reproducible: Always Steps to Reproduce: have these 2 java files: package org.some; public class Base { public void stuff(){ } } ========== package org.some; public class Sub extends Base { @Override public void stuff() { super.stuff(); } } ========= 1. put your cursor on the Sub class and do a rename on it, ie. alt+shift+r and rename it to anything other than Sub (obviously) 2. then click(and release) left mouse button on the green up-arrow on the left of the stuff() method which means you would go to its super implementation. Looks like this: http://i.imgur.com/EV7op.png 3. you get this error message: http://i.imgur.com/hFtdJ.png to fix this just F3 (go to declaration) on the Base class on this line: "public class Sub2 extends Base" which will go/open the Base class you can also do this on the "super.stuff()" line, same thing. Then alt+left to go back in nav. history and now click the green up-arrow to go to super and it works. Note: even if Base is already open in editor (but not active), it will still fail to open its super when doing those reproduce-steps.
Created attachment 196311 [details] green arrow
Created attachment 196312 [details] the fail dialog
still exists in: Eclipse SDK Version: 4.1.0 Build id: I20110522-2200
Trace of error dialog. Cannot reproduce on 3.7. MessageDialog.openError(Shell, String, String) line: 431 OverrideIndicatorManager$OverrideIndicator.open() line: 122 JavaSelectAnnotationRulerAction.runWithEvent(Event) line: 89 JavaSelectAnnotationRulerAction.run() line: 79 JavaSelectRulerAction(AbstractRulerActionDelegate).run(IAction) line: 103 ActionDelegateHandlerProxy.execute(ExecutionEvent) line: 289 Command.executeWithChecks(ExecutionEvent) line: 476 ParameterizedCommand.executeWithChecks(Object, Object) line: 508 ContributedAction.runWithEvent(Event) line: 197 ContributedAction(CommandAction).run() line: 171 AbstractTextEditor$14.triggerAction(String) line: 3066 AbstractTextEditor$14.access$1(AbstractTextEditor$14, String) line: 3060 AbstractTextEditor$15.run() line: 3079
In 3.x, the IPartListener2s are notified that a part's input has changed. This notification doesn't seem to be happening in 4.x. Thread [main] (Suspended (breakpoint at line 255 in ASTProvider)) owns: RunnableLock (id=1474) ASTProvider.activeJavaEditorChanged(IWorkbenchPart) line: 255 ASTProvider$ActivationListener.partInputChanged(IWorkbenchPartReference) line: 148 PartListenerList2$8.run() line: 195 SafeRunner.run(ISafeRunnable) line: 42 Platform.run(ISafeRunnable) line: 888 PartListenerList2.fireEvent(SafeRunnable, IPartListener2, IWorkbenchPartReference, String) line: 55 PartListenerList2.firePartInputChanged(IWorkbenchPartReference) line: 193 PartService.firePartInputChanged(IWorkbenchPartReference) line: 265 WWinPartService$WWinListener.partInputChanged(IWorkbenchPartReference) line: 66 PartListenerList2$8.run() line: 195 SafeRunner.run(ISafeRunnable) line: 42 Platform.run(ISafeRunnable) line: 888 PartListenerList2.fireEvent(SafeRunnable, IPartListener2, IWorkbenchPartReference, String) line: 55 PartListenerList2.firePartInputChanged(IWorkbenchPartReference) line: 193 PartService.firePartInputChanged(IWorkbenchPartReference) line: 265 WorkbenchPagePartList.firePartInputChanged(IWorkbenchPartReference) line: 72 WorkbenchPagePartList(PartList).partInputChanged(WorkbenchPartReference) line: 195 PartList.access$4(PartList, WorkbenchPartReference) line: 194 PartList$1.propertyChanged(Object, int) line: 54 EditorReference(WorkbenchPartReference).fireInternalPropertyChange(int) line: 375 EditorReference(WorkbenchPartReference).immediateFirePropertyChange(int) line: 574 EditorReference(WorkbenchPartReference).firePropertyChange(int) line: 564 EditorReference(WorkbenchPartReference).partPropertyChanged(Object, int) line: 299 EditorReference.partPropertyChanged(Object, int) line: 501 WorkbenchPartReference$2.propertyChanged(Object, int) line: 181 CompilationUnitEditor(WorkbenchPart).firePropertyChange(int) line: 129 CompilationUnitEditor(AbstractTextEditor).firePropertyChange(int) line: 6355 CompilationUnitEditor(AbstractTextEditor).setInputWithNotify(IEditorInput) line: 4285 CompilationUnitEditor(AbstractTextEditor).setInput(IEditorInput) line: 4299 AbstractTextEditor$7.run() line: 530 AbstractTextEditor$ElementStateListener.execute(Runnable, boolean) line: 599 AbstractTextEditor$ElementStateListener.elementMoved(Object, Object) line: 560 TextFileDocumentProvider$FileBufferListener.underlyingFileMoved(IFileBuffer, IPath) line: 322 TextFileBufferManager$6.run() line: 742 SafeRunner.run(ISafeRunnable) line: 42 ResourceTextFileBufferManager(TextFileBufferManager).fireUnderlyingFileMoved(IFileBuffer, IPath) line: 740 ResourceTextFileBuffer(ResourceFileBuffer).handleFileMoved(IPath) line: 449 ResourceFileBuffer$3.execute() line: 162 ResourceFileBuffer$3(ResourceFileBuffer$SafeFileChange).run() line: 86 UISynchronizationContext.run(Runnable) line: 34 ResourceTextFileBufferManager(TextFileBufferManager).execute(Runnable) line: 629 ResourceFileBuffer$FileSynchronizer.resourceChanged(IResourceChangeEvent) line: 180 NotificationManager$1.run() line: 291 SafeRunner.run(ISafeRunnable) line: 42 NotificationManager.notify(ResourceChangeListenerList$ListenerEntry[], IResourceChangeEvent, boolean) line: 285 NotificationManager.broadcastChanges(ElementTree, ResourceChangeEvent, boolean) line: 149 Workspace.broadcastPostChange() line: 395 Workspace.checkpoint(boolean) line: 557 PerformChangeOperation$1.run(IProgressMonitor) line: 263 Workspace.run(IWorkspaceRunnable, ISchedulingRule, int, IProgressMonitor) line: 2344 PerformChangeOperation.executeChange(IProgressMonitor) line: 306 PerformChangeOperation.run(IProgressMonitor) line: 223 BatchOperation.executeOperation() line: 39 BatchOperation(JavaModelOperation).run(IProgressMonitor) line: 728 Workspace.run(IWorkspaceRunnable, ISchedulingRule, int, IProgressMonitor) line: 2344 JavaCore.run(IWorkspaceRunnable, ISchedulingRule, IProgressMonitor) line: 4859 WorkbenchRunnableAdapter.run(IProgressMonitor) line: 106 ModalContext.runInCurrentThread(IRunnableWithProgress, IProgressMonitor) line: 464 ModalContext.run(IRunnableWithProgress, boolean, IProgressMonitor, Display) line: 372 ApplicationWindow$1.run() line: 759 BusyIndicator.showWhile(Display, Runnable) line: 70 WorkbenchWindow(ApplicationWindow).run(boolean, boolean, IRunnableWithProgress) line: 756 WorkbenchWindow.run(boolean, boolean, IRunnableWithProgress) line: 2642 RefactoringExecutionHelper.perform(boolean, boolean, boolean) line: 193 RefactoringExecutionHelper.perform(boolean, boolean) line: 151 RenameSupport.perform(Shell, IRunnableContext) line: 198 RenameLinkedMode.doRename(boolean) line: 362 RenameLinkedMode$EditorSynchronizer.left(LinkedModeModel, int) line: 119 LinkedModeModel.exit(int) line: 341 LinkedModeUI$4.run() line: 1194 RunnableLock.run() line: 35 UISynchronizer(Synchronizer).runAsyncMessages(boolean) line: 135
Created attachment 196555 [details] Part input change notification patch v1 When a workbench part fires out a notification that its input has changed, the event needs to be forwarded out to the part service.
(In reply to comment #6) > Created attachment 196555 [details] > Part input change notification patch v1 Patch released to CVS HEAD. Thanks for the bug report.
confirmed to work in: Eclipse SDK Version: 4.1.0 Build id: I20110526-0630 Awesome! Thank YOU! :)
Verified with I20110604-2201 on Windows XP. Thanks again for the bug report, John!