按Enter键时,重构重命名会恢复更改

时间:2014-03-16 11:00:15

标签: eclipse eclipse-kepler eclipse-pdt

我使用shift + alt + r来重命名javascript变量。

“输入新名称,按Enter键重构”出现在工具提示中。

当我按Enter键时,应该进行重构,而是将变量名恢复为之前的状态。

为什么?

我对错误日志显示的内容有疑问。 它来了:

java.lang.reflect.InvocationTargetException
    at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:421)
    at org.eclipse.ui.internal.WorkbenchWindow$13.run(WorkbenchWindow.java:1812)
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
    at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:1809)
    at org.eclipse.wst.jsdt.internal.ui.refactoring.RefactoringExecutionHelper.perform(RefactoringExecutionHelper.java:172)
    at org.eclipse.wst.jsdt.ui.refactoring.RenameSupport.perform(RenameSupport.java:191)
    at org.eclipse.wst.jsdt.internal.ui.refactoring.reorg.RenameLinkedMode.doRename(RenameLinkedMode.java:329)
    at org.eclipse.wst.jsdt.internal.ui.refactoring.reorg.RenameLinkedMode$EditorSynchronizer.left(RenameLinkedMode.java:103)
    at org.eclipse.jface.text.link.LinkedModeModel.exit(LinkedModeModel.java:341)
    at org.eclipse.jface.text.link.LinkedModeUI$4.run(LinkedModeUI.java:1193)
    at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
    at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
    at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4145)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3762)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:138)
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:610)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
    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:354)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1426)
Caused by: java.lang.NullPointerException
    at org.eclipse.wst.jsdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1125)
    at org.eclipse.wst.jsdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1186)
    at org.eclipse.wst.jsdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1309)
    at org.eclipse.wst.jsdt.internal.core.search.JavaSearchParticipant.locateMatches(JavaSearchParticipant.java:104)
    at org.eclipse.wst.jsdt.internal.core.search.BasicSearchEngine.findMatches(BasicSearchEngine.java:264)
    at org.eclipse.wst.jsdt.internal.core.search.BasicSearchEngine.search(BasicSearchEngine.java:513)
    at org.eclipse.wst.jsdt.core.search.SearchEngine.search(SearchEngine.java:243)
    at org.eclipse.wst.jsdt.internal.corext.refactoring.RefactoringSearchEngine.internalSearch(RefactoringSearchEngine.java:138)
    at org.eclipse.wst.jsdt.internal.corext.refactoring.RefactoringSearchEngine.search(RefactoringSearchEngine.java:125)
    at org.eclipse.wst.jsdt.internal.corext.refactoring.rename.RenameNonVirtualMethodProcessor.getOccurrences(RenameNonVirtualMethodProcessor.java:129)
    at org.eclipse.wst.jsdt.internal.corext.refactoring.rename.RenameMethodProcessor.doCheckFinalConditions(RenameMethodProcessor.java:353)
    at org.eclipse.wst.jsdt.internal.corext.refactoring.rename.RenameNonVirtualMethodProcessor.doCheckFinalConditions(RenameNonVirtualMethodProcessor.java:82)
    at org.eclipse.wst.jsdt.internal.corext.refactoring.rename.JavaRenameProcessor.checkFinalConditions(JavaRenameProcessor.java:43)
    at org.eclipse.ltk.core.refactoring.participants.ProcessorBasedRefactoring.checkFinalConditions(ProcessorBasedRefactoring.java:224)
    at org.eclipse.ltk.core.refactoring.Refactoring.checkAllConditions(Refactoring.java:162)
    at org.eclipse.wst.jsdt.internal.ui.refactoring.RefactoringExecutionHelper$Operation.run(RefactoringExecutionHelper.java:69)
    at org.eclipse.wst.jsdt.internal.core.BatchOperation.executeOperation(BatchOperation.java:39)
    at org.eclipse.wst.jsdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:742)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2345)
    at org.eclipse.wst.jsdt.core.JavaScriptCore.run(JavaScriptCore.java:3844)
    at org.eclipse.wst.jsdt.internal.ui.actions.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:83)
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Root exception:
java.lang.NullPointerException
    at org.eclipse.wst.jsdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1125)
    at org.eclipse.wst.jsdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1186)
    at org.eclipse.wst.jsdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1309)
    at org.eclipse.wst.jsdt.internal.core.search.JavaSearchParticipant.locateMatches(JavaSearchParticipant.java:104)
    at org.eclipse.wst.jsdt.internal.core.search.BasicSearchEngine.findMatches(BasicSearchEngine.java:264)
    at org.eclipse.wst.jsdt.internal.core.search.BasicSearchEngine.search(BasicSearchEngine.java:513)
    at org.eclipse.wst.jsdt.core.search.SearchEngine.search(SearchEngine.java:243)
    at org.eclipse.wst.jsdt.internal.corext.refactoring.RefactoringSearchEngine.internalSearch(RefactoringSearchEngine.java:138)
    at org.eclipse.wst.jsdt.internal.corext.refactoring.RefactoringSearchEngine.search(RefactoringSearchEngine.java:125)
    at org.eclipse.wst.jsdt.internal.corext.refactoring.rename.RenameNonVirtualMethodProcessor.getOccurrences(RenameNonVirtualMethodProcessor.java:129)
    at org.eclipse.wst.jsdt.internal.corext.refactoring.rename.RenameMethodProcessor.doCheckFinalConditions(RenameMethodProcessor.java:353)
    at org.eclipse.wst.jsdt.internal.corext.refactoring.rename.RenameNonVirtualMethodProcessor.doCheckFinalConditions(RenameNonVirtualMethodProcessor.java:82)
    at org.eclipse.wst.jsdt.internal.corext.refactoring.rename.JavaRenameProcessor.checkFinalConditions(JavaRenameProcessor.java:43)
    at org.eclipse.ltk.core.refactoring.participants.ProcessorBasedRefactoring.checkFinalConditions(ProcessorBasedRefactoring.java:224)
    at org.eclipse.ltk.core.refactoring.Refactoring.checkAllConditions(Refactoring.java:162)
    at org.eclipse.wst.jsdt.internal.ui.refactoring.RefactoringExecutionHelper$Operation.run(RefactoringExecutionHelper.java:69)
    at org.eclipse.wst.jsdt.internal.core.BatchOperation.executeOperation(BatchOperation.java:39)
    at org.eclipse.wst.jsdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:742)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2345)
    at org.eclipse.wst.jsdt.core.JavaScriptCore.run(JavaScriptCore.java:3844)
    at org.eclipse.wst.jsdt.internal.ui.actions.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:83)
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)

1 个答案:

答案 0 :(得分:1)

我认为现在很清楚,重构失败了,因为它是一个NPE,它可能是JavaScript开发工具中的一个错误。

我建议在产品JSDT,组件General中的https://bugs.eclipse.org/bugs/buglist.cgi?component=General&product=JSDT&resolution=---处打开错误。 你需要提供一个(最好是最小的)js文件来表明这个bug。

同时尝试下载更新的Eclipse / JSDT(无需升级,只需创建另一个Eclipse文件夹并尝试在那里重构代码)也许它已经修复了你只是没有使用最新版本。

还值得尝试重启Eclipse(在重启之前关闭所有打开的文件)。

  

注意:我已经转移到Sublime,因为Eclipse中的JS编辑器没有给我适当的支持/有错误。