上周突然之间,一个javascript文件将不再在比较编辑器中打开。
- 我正在运行最新的火星月食
- 我正在运行最新的Subclipse
- 我与repo同步,并查看更改的文件
- 当我双击或选择比较时,我会看到一个空白的白色页面,上面写着"正在初始化…",或者看到一个灰色的空白页面
- 它只包含一个特定的text.js文件。。。项目中的所有其他文件和其他项目的差异都很好
- 该文件为37880字节
- 我已经删除了subversion设置文件,并重新创建了它们
- 我已经检查了首选项并忽略空白
这只是一个文件。。。它是node.js项目的主文件。它过去的diff很好,上周突然间,这个文件将不再diff,并引发了这个异常。
当我查看日志时,我看到以下异常:
!输入org.eclipse.ui 4 0 2016-04-14 12:38:08.535!MESSAGE未处理的事件循环异常!堆栈0org.eclipse.swt.SWTException:无法执行可运行的(java.lang.IollegalArgumentException)网址:org.eclipse.swt.swt.error(swt.java:4491)网址:org.eclipse.swt.swt.error(swt.java:4406)网址:org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:138)位于org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4155)网址:org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3772)网址:org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1127)网址:org.eclipse.core.databinding.observatory.Realm.runWithDefault(Realm.java:337)网址:org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1018)位于org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156)网址:org.eclipse.ui.internal.Workbench$5.run(Workbench.java:694)网址:org.eclipse.core.databinding.observatory.Realm.runWithDefault(Realm.java:337)位于org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:606)网址:org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)网址:org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:139)网址:org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)位于org.eclipse.core.runtime.internal.adapter.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)位于org.eclipse.core.runtime.internal.adapter.EclipseAppLauncher.start(EclipseAppLauncher.java:104)位于org.eclipse.core.runtime.adapter.EclipseStarter.run(EclipseStarter.java:380)位于org.eclipse.core.runtime.adapter.EclipseStarter.run(EclipseStarter.java:235)在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)位于sun.reflect.NativeMethodAccessorImpl.invoke(未知源)在sun.reflect.DelegatingMethodAccessorImpl.invoke(未知源)位于java.lang.reflect.Method.ioke(未知源)网址:org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:669)网址:org.eclipse.equinox.launcher.Main.basicRun(Main.java:608)网址:org.eclipse.equinox.launcher.Main.run(Main.java:1515)
引起原因:java.lang.IollegalArgumentException网址:org.eclipse.wst.jsdt.core.dom.ASTNode.setSourceRange(ASTNode.java:2490)网址:org.eclipse.wst.jsdt.core.dom.ASTConverter.convertToVariableDeclarationStatement(ASTConverter.java:2696)网址:org.eclipse.wst.jsdt.core.dom.ASTConverter.checkAndAddMultipleLocalDeclaration(ASTConverter.java:319)网址:org.eclipse.wst.jsdt.core.dom.ASTConverter.convert(ASTConverter.java:436)网址:org.eclipse.wst.jsdt.core.dom.ASTConverter.convert(ASTConverter.java:1175)网址:org.eclipse.wst.jsdt.core.dom.JavaScriptUnitResolver.convert(JavaScriptUnitSolutionr.java:262)网址:org.eclipse.wst.jsdt.core.dom.ASTParser.internalCreateAST(ASTParser.java:887)网址:org.eclipse.wst.jsdt.core.dom.ASTParser.createAST(ASTParser.java:647)网址:org.eclipse.wst.jsdt.internal.ui.compare.JavaStructureCreator.createStructureComparator(JavaStructureCreator.java:284)网址:org.eclipse.wst.jsdt.internal.ui.compare.JavaStructureCreator.createStructureComparator(JavaStructureCreator.java:243)网址:org.eclipse.compare.structuremergeviewer.StructureCreator.internalCreateStructure(StructureCreator.java:121)网址:org.eclipse.compare.structuremergeviewer.StructureCreator.access$0(StructureCreator.java:109)网址:org.eclipse.compare.structuremergeviewer.StructureCreator$1.run(StructureCreator.java:96)在org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicater.java:70)网址:org.eclipse.compare.internal.Utilities.runInUIThread(Utilities.java:859)位于org.eclipse.compare.structuremergeviewer.StructureCreator.createStructure(StructureCreator.java:102)位于org.eclipse.compare.structuremergeviewer.StructureDiffViewer$StructureInfo.createStructure(StructureDiffViewer.java:155)位于org.eclipse.compare.structuremergeviewer.StructureDiffViewer$StructureInfo.refresh(StructureDiffViewer.java:133)位于org.eclipse.compare.structuremergeviewer.StructureDiffViewer$StructureInfo.setInput(StructureDiffViewer.java:104)位于org.eclipse.compare.structuremergeviewer.StructureDiffViewer.compareInputChanged(StructureDiffViewer.java:342)网址:org.eclipse.compare.structuremergeviewer.StructureDiffViewer$2.run(StructureDiffViewer.java:74)网址:org.eclipse.compare.structuremergeviewer.StructureDiffViewer$6.run(StructureDiffViewer.java:322)在org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicater.java:70)位于org.eclipse.compare.structuremergeviewer.StructureDiffViewer.compareInputChanged(StructureDiffViewer.java:319)位于org.eclipse.compare.structuremergeviewer.StructureDiffViewer.compareInputChanged(StructureDiffViewer.java:307)网址:org.eclipse.wst.jsdt.internal.ui.compare.JavaStructureDiffViewer.compareInputChanged(JavaStructureDiffViewer.java:143)位于org.eclipse.compare.structuremergeviewer.StructureDiffViewer.inputChanged(StructureDiffViewer.java:278)位于org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:292)位于org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1701)位于org.eclipse.compare.CompareViewerSwitchingPane.setInput(CompareViewerSwittingPane.java:277)位于org.eclipse.compare.internal.CompareStructureViewerSwitchingPane.setInput(CompareStructureViewerSwitch Pane.java:132)网址:org.eclipse.CompareEditorInput.feedInput(CompareEditorInput.java:747)网址:org.eclipse.CompareEditorInput.createContents(CompareEditorInput.java:555)网址:org.eclipse.compare.internal.CompreEditor.createCompareControl(CompareEditor.java:462)网址:org.eclipse.compare.internal.CompareEditor.access$6(CompareEditor.java:422)网址:org.eclipse.compare.internal.CompreEditor$3.run(CompareEditor.java:378)网址:org.eclipse.ui.internal.UILockListener.doPendingWork(UILockListener.java:162)网址:org.eclipse.ui.internal.UISynchronizer$3.run(UISynchronizer.java:154)网址:org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)网址:org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)…还有23个
我没有解决方案,但我遇到了同样的问题,并找到了解决方法。我在"General"->"compare/Patch"下的eclipse首选项中关闭了"Open structure compare automatically"。然后我就可以在比较编辑器中打开文件了。
这看起来像Eclipse错误390913,它已经打开了一段时间,但似乎没有任何进展。