Closed reprogrammer closed 13 years ago
We started by instrumenting MoveStaticMembersProcessor
in 64369f03dbdaf78c02ab7e1f9a7f806d1b42fb3b. Our instrumentation successfully captures the cancellation of this refactoring. But, it throws the following exception when a move refactoring on a static field is performed.
java.lang.NullPointerException at org.eclipse.jdt.internal.corext.refactoring.structure.MoveStaticMembersProcessor.getQualifiedTypeLabel(MoveStaticMembersProcessor.java:636) at org.eclipse.jdt.internal.corext.refactoring.structure.MoveStaticMembersProcessor.createDescriptor(MoveStaticMembersProcessor.java:849) at org.eclipse.jdt.internal.corext.refactoring.structure.MoveStaticMembersProcessor.createRefactoringDescriptor(MoveStaticMembersProcessor.java:1158) at org.eclipse.jdt.internal.corext.refactoring.structure.WatchedMoveProcessor.getSimpleRefactoringDescriptor(WatchedMoveProcessor.java:22) at org.eclipse.ltk.core.refactoring.participants.MoveRefactoring.getSimpleRefactoringDescriptor(MoveRefactoring.java:70) at org.eclipse.ltk.ui.refactoring.Logger.logRefactoringEvent(Logger.java:49) at org.eclipse.ltk.ui.refactoring.RefactoringWizard.performCancel(RefactoringWizard.java:653) at org.eclipse.ltk.internal.ui.refactoring.RefactoringWizardDialog2.cancelPressed(RefactoringWizardDialog2.java:446) at org.eclipse.jface.dialogs.Dialog.buttonPressed(Dialog.java:474) at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:624) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3540) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3161) at org.eclipse.jface.window.Window.runEventLoop(Window.java:825) at org.eclipse.jface.window.Window.open(Window.java:801) at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation$1.run(RefactoringWizardOpenOperation.java:180) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run(RefactoringWizardOpenOperation.java:192) at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run(RefactoringWizardOpenOperation.java:115) at org.eclipse.jdt.internal.ui.refactoring.actions.RefactoringStarter.activate(RefactoringStarter.java:38) at org.eclipse.jdt.internal.corext.refactoring.RefactoringExecutionStarter.startMoveStaticMembersRefactoring(RefactoringExecutionStarter.java:412) at org.eclipse.jdt.internal.ui.refactoring.actions.MoveStaticMembersAction.run(MoveStaticMembersAction.java:108) at org.eclipse.jdt.ui.actions.MoveAction.tryMoveStaticMembers(MoveAction.java:180) at org.eclipse.jdt.ui.actions.MoveAction.run(MoveAction.java:158) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:278) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:250) at org.eclipse.jface.action.Action.runWithEvent(Action.java:498) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584) at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501) at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3540) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3161) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) 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:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574) at org.eclipse.equinox.launcher.Main.run(Main.java:1407) at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
The commit 78e40da9d60887517a550099e048a3bd9882a6a1 throws the following exception when canceling a move static member refactoring. This exception occurs when the user provide an invalid destination type. This is because we have to set fDestinationType
in the refactoring descriptor to a non-null value.
java.lang.reflect.InvocationTargetException 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:597) at org.eclipse.jdt.internal.corext.refactoring.structure.WatchedMoveProcessor.getArguments(WatchedMoveProcessor.java:36) at org.eclipse.jdt.internal.corext.refactoring.structure.WatchedMoveProcessor.getSimpleRefactoringDescriptor(WatchedMoveProcessor.java:23) at org.eclipse.ltk.core.refactoring.participants.MoveRefactoring.getSimpleRefactoringDescriptor(MoveRefactoring.java:70) at org.eclipse.ltk.ui.refactoring.Logger.logRefactoringEvent(Logger.java:49) at org.eclipse.ltk.ui.refactoring.RefactoringWizard.performCancel(RefactoringWizard.java:651) at org.eclipse.ltk.internal.ui.refactoring.RefactoringWizardDialog2.cancelPressed(RefactoringWizardDialog2.java:446) at org.eclipse.jface.dialogs.Dialog.buttonPressed(Dialog.java:474) at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:624) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3540) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3161) at org.eclipse.jface.window.Window.runEventLoop(Window.java:825) at org.eclipse.jface.window.Window.open(Window.java:801) at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation$1.run(RefactoringWizardOpenOperation.java:180) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run(RefactoringWizardOpenOperation.java:192) at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run(RefactoringWizardOpenOperation.java:115) at org.eclipse.jdt.internal.ui.refactoring.actions.RefactoringStarter.activate(RefactoringStarter.java:38) at org.eclipse.jdt.internal.corext.refactoring.RefactoringExecutionStarter.startMoveStaticMembersRefactoring(RefactoringExecutionStarter.java:412) at org.eclipse.jdt.internal.ui.refactoring.actions.MoveStaticMembersAction.run(MoveStaticMembersAction.java:108) at org.eclipse.jdt.ui.actions.MoveAction.tryMoveStaticMembers(MoveAction.java:180) at org.eclipse.jdt.ui.actions.MoveAction.run(MoveAction.java:158) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:278) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:250) at org.eclipse.jface.action.Action.runWithEvent(Action.java:498) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584) at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501) at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3540) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3161) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) 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:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574) at org.eclipse.equinox.launcher.Main.run(Main.java:1407) at org.eclipse.equinox.launcher.Main.main(Main.java:1383) Caused by: java.lang.RuntimeException: Validation returns a fatal error status at org.eclipse.jdt.core.refactoring.descriptors.JavaRefactoringDescriptor.populateArgumentMap(JavaRefactoringDescriptor.java:334) at org.eclipse.jdt.core.refactoring.descriptors.MoveStaticMembersDescriptor.populateArgumentMap(MoveStaticMembersDescriptor.java:105) at org.eclipse.jdt.core.refactoring.descriptors.JavaRefactoringDescriptor.getArguments(JavaRefactoringDescriptor.java:323) ... 59 more Caused by: org.eclipse.core.runtime.CoreException: Destination type has not been set. ... 62 more Root exception: java.lang.RuntimeException: Validation returns a fatal error status at org.eclipse.jdt.core.refactoring.descriptors.JavaRefactoringDescriptor.populateArgumentMap(JavaRefactoringDescriptor.java:334) at org.eclipse.jdt.core.refactoring.descriptors.MoveStaticMembersDescriptor.populateArgumentMap(MoveStaticMembersDescriptor.java:105) at org.eclipse.jdt.core.refactoring.descriptors.JavaRefactoringDescriptor.getArguments(JavaRefactoringDescriptor.java:323) 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:597) at org.eclipse.jdt.internal.corext.refactoring.structure.WatchedMoveProcessor.getArguments(WatchedMoveProcessor.java:36) at org.eclipse.jdt.internal.corext.refactoring.structure.WatchedMoveProcessor.getSimpleRefactoringDescriptor(WatchedMoveProcessor.java:23) at org.eclipse.ltk.core.refactoring.participants.MoveRefactoring.getSimpleRefactoringDescriptor(MoveRefactoring.java:70) at org.eclipse.ltk.ui.refactoring.Logger.logRefactoringEvent(Logger.java:49) at org.eclipse.ltk.ui.refactoring.RefactoringWizard.performCancel(RefactoringWizard.java:651) at org.eclipse.ltk.internal.ui.refactoring.RefactoringWizardDialog2.cancelPressed(RefactoringWizardDialog2.java:446) at org.eclipse.jface.dialogs.Dialog.buttonPressed(Dialog.java:474) at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:624) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3540) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3161) at org.eclipse.jface.window.Window.runEventLoop(Window.java:825) at org.eclipse.jface.window.Window.open(Window.java:801) at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation$1.run(RefactoringWizardOpenOperation.java:180) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run(RefactoringWizardOpenOperation.java:192) at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run(RefactoringWizardOpenOperation.java:115) at org.eclipse.jdt.internal.ui.refactoring.actions.RefactoringStarter.activate(RefactoringStarter.java:38) at org.eclipse.jdt.internal.corext.refactoring.RefactoringExecutionStarter.startMoveStaticMembersRefactoring(RefactoringExecutionStarter.java:412) at org.eclipse.jdt.internal.ui.refactoring.actions.MoveStaticMembersAction.run(MoveStaticMembersAction.java:108) at org.eclipse.jdt.ui.actions.MoveAction.tryMoveStaticMembers(MoveAction.java:180) at org.eclipse.jdt.ui.actions.MoveAction.run(MoveAction.java:158) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:278) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:250) at org.eclipse.jface.action.Action.runWithEvent(Action.java:498) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584) at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501) at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3540) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3161) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) 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:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574) at org.eclipse.equinox.launcher.Main.run(Main.java:1407) at org.eclipse.equinox.launcher.Main.main(Main.java:1383) Caused by: org.eclipse.core.runtime.CoreException: Destination type has not been set. ... 62 more !ENTRY org.eclipse.ui 4 0 2010-11-08 18:38:04.850 !MESSAGE Unhandled event loop exception !STACK 0 java.lang.IllegalArgumentException: The map does not contain the attribute 'input' at org.eclipse.jdt.internal.core.refactoring.descriptors.JavaRefactoringDescriptorUtil.getString(JavaRefactoringDescriptorUtil.java:182) at org.eclipse.jdt.internal.core.refactoring.descriptors.JavaRefactoringDescriptorUtil.getJavaElement(JavaRefactoringDescriptorUtil.java:321) at org.eclipse.jdt.internal.core.refactoring.descriptors.JavaRefactoringDescriptorUtil.getJavaElement(JavaRefactoringDescriptorUtil.java:305) at org.eclipse.jdt.core.refactoring.descriptors.MoveStaticMembersDescriptor.(MoveStaticMembersDescriptor.java:95) at org.eclipse.jdt.internal.core.refactoring.descriptors.RefactoringSignatureDescriptorFactory.createMoveStaticMembersDescriptor(RefactoringSignatureDescriptorFactory.java:234) at org.eclipse.jdt.internal.corext.refactoring.structure.WatchedMoveProcessor.getSimpleRefactoringDescriptor(WatchedMoveProcessor.java:26) at org.eclipse.ltk.core.refactoring.participants.MoveRefactoring.getSimpleRefactoringDescriptor(MoveRefactoring.java:70) at org.eclipse.ltk.ui.refactoring.Logger.logRefactoringEvent(Logger.java:49) at org.eclipse.ltk.ui.refactoring.RefactoringWizard.performCancel(RefactoringWizard.java:651) at org.eclipse.ltk.internal.ui.refactoring.RefactoringWizardDialog2.cancelPressed(RefactoringWizardDialog2.java:446) at org.eclipse.jface.dialogs.Dialog.buttonPressed(Dialog.java:474) at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:624) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3540) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3161) at org.eclipse.jface.window.Window.runEventLoop(Window.java:825) at org.eclipse.jface.window.Window.open(Window.java:801) at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation$1.run(RefactoringWizardOpenOperation.java:180) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run(RefactoringWizardOpenOperation.java:192) at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run(RefactoringWizardOpenOperation.java:115) at org.eclipse.jdt.internal.ui.refactoring.actions.RefactoringStarter.activate(RefactoringStarter.java:38) at org.eclipse.jdt.internal.corext.refactoring.RefactoringExecutionStarter.startMoveStaticMembersRefactoring(RefactoringExecutionStarter.java:412) at org.eclipse.jdt.internal.ui.refactoring.actions.MoveStaticMembersAction.run(MoveStaticMembersAction.java:108) at org.eclipse.jdt.ui.actions.MoveAction.tryMoveStaticMembers(MoveAction.java:180) at org.eclipse.jdt.ui.actions.MoveAction.run(MoveAction.java:158) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:278) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:250) at org.eclipse.jface.action.Action.runWithEvent(Action.java:498) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584) at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501) at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3540) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3161) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) 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:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574) at org.eclipse.equinox.launcher.Main.run(Main.java:1407) at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
The above exception is fixed in cd1cc08d7ce8fa7800f6a5fcd3edc9921925ed11.
We are not capturing the move refactorings performed via drag and drop in the outline view. Such moves are textual, i.e. if they cause any errors they'll still be performed. However, they are logged by the refactoring history service of Eclipse like other refactorings. Since these textual moves always get performed, there's no way to cancel them. Therefore, Eclipse already captures them but an undo deletes it from refactoring history. However, codingtracker records all refactorings even though they get undone.
We captured the move instance method refactoring in 1443c23f3239a25a790f615a8c341aa5257c68f2.
We instrumented JavaMoveProcessor in 54f7e6c7ec44ae91de8c16112a53c4e53b8a66f3
Limitations:
OperationCanceledException
when the user cancels the dialog.We factored out move and rename processors to reuse WatchedProcessor
in d8573674fbf14d01d7835bcfdbcadcab2b82d736.
Resolved in a027b12dc1ac4d967401b6f28492cfce17327091
The move refactoring is similar to rename as it is also processor based. The following three classes extend
org.eclipse.ltk.core.refactoring.participants.MoveProcessor
org.eclipse.jdt.internal.corext.refactoring.reorg.JavaMoveProcessor
org.eclipse.jdt.internal.corext.refactoring.structure.MoveInstanceMethodProcessor
org.eclipse.jdt.internal.corext.refactoring.structure.MoveStaticMembersProcessor
org.eclipse.ltk.internal.core.refactoring.resource.MoveResourcesProcessor
The class
org.eclipse.ltk.internal.core.refactoring.resource.MoveResourcesProcessor
is not in JDT. So, we won't instrument it.