【问题标题】:Eclipse Mars - one specific file will not open in compare editor?Eclipse Mars - 一个特定文件不会在比较编辑器中打开?
【发布时间】:2016-04-14 18:44:09
【问题描述】:

上周突然之间,一个 javascript 文件将不再在比较编辑器中打开。

  • 我正在运行最新的 Mars Eclipse
  • 我正在运行最新的 Subclipse
  • 我与 repo 同步,并查看更改的文件
  • 当我双击或选择比较时,我看到一个带有“正在初始化...”的空白白页或一个空白灰页
  • 它只适用于一个特定的文本 .js 文件...项目中的所有其他文件,其他项目差异很好。
  • 文件大小为 37,880 字节
  • 我删除了颠覆设置文件,并重新创建了它们
  • 我已检查首选项并忽略空格

只有这个 ONE 文件……它是 node.js 项目的主文件。它曾经 diff 很好,上周突然间这个文件将不再 diff 并引发此异常。

当我查看日志时,我看到以下异常:

!ENTRY org.eclipse.ui 4 0 2016-04-14 12:38:08.535 !MESSAGE 未处理的事件循环异常 !堆栈 0 org.eclipse.swt.SWTException:无法执行可运行(java.lang.IllegalArgumentException) 在 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.observable.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.observable.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.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) 在 org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) 在 org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) 在 org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(未知来源) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源) 在 java.lang.reflect.Method.invoke(未知来源) 在 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.IllegalArgumentException 在 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(JavaScriptUnitResolver.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.BusyIndi​​cator.showWhile(BusyIndi​​cator.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.BusyIndi​​cator.showWhile(BusyIndi​​cator.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(CompareViewerSwitchingPane.java:277) 在 org.eclipse.compare.internal.CompareStructureViewerSwitchingPane.setInput(CompareStructureViewerSwitchingPane.java:132) 在 org.eclipse.compare.CompareEditorInput.feedInput(CompareEditorInput.java:747) 在 org.eclipse.compare.CompareEditorInput.createContents(CompareEditorInput.java:555) 在 org.eclipse.compare.internal.CompareEditor.createCompareControl(CompareEditor.java:462) 在 org.eclipse.compare.internal.CompareEditor.access$6(CompareEditor.java:422) 在 org.eclipse.compare.internal.CompareEditor$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 更多

【问题讨论】:

    标签: javascript eclipse svn compare subclipse


    【解决方案1】:

    我没有解决方案,但我遇到了同样的问题并找到了解决方法。我在“常规”->“比较/补丁”下的 Eclipse 首选项中关闭了“自动打开结构比较”。然后我可以在比较编辑器中打开文件。

    【讨论】:

    • 为我工作,我不明白这东西到底做了什么,在 eclipse 文档中它只是说“自动打开结构比较”->“使附加信息区域可见,显示底层结构的差异正在比较的资源。此信息可能不适用于所有比较。"
    【解决方案2】:

    这看起来像 Eclipse 错误 390913,它已经打开了一段时间,但似乎没有任何进展。

    【讨论】:

    • 是的......就像那个 bug 上的一些 cmets,我不知道这个文件的文本中究竟是什么导致了问题。如果我有一些想法,我会编辑文件并删除有问题的内容......但当然,Eclipse 首先抛出异常也是愚蠢的。 :-/
    猜你喜欢
    • 2016-02-06
    • 2015-04-09
    • 2011-01-04
    • 2012-11-10
    • 2013-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多