eclipse-modisco / org.eclipse.modisco

Eclipse Public License 2.0
0 stars 0 forks source link

Bad registration #1075

Closed eclipse-modisco-bot closed 3 days ago

eclipse-modisco-bot commented 3 days ago

| --- | --- | | Bugzilla Link | 583004 | | Status | CLOSED INVALID | | Importance | P3 normal | | Reported | Mar 08, 2024 03:02 EDT | | Modified | Mar 08, 2024 03:42 EDT | | Reporter | Ed Merks |

Description

When I install the "all" product and visit all the preference pages, it appears that modisco registers something invalid:

java.lang.ClassCastException: class org.eclipse.modisco.xml.emf.impl.RootImpl cannot be cast to class org.eclipse.dltk.tcl.definitions.Scope (org.eclipse.modisco.xml.emf.impl.RootImpl is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @3db40fed; org.eclipse.dltk.tcl.definitions.Scope is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @7a5fa825)\ at org.eclipse.dltk.tcl.parser.definitions.DefinitionLoader.loadDefinitions(DefinitionLoader.java:30)\ at org.eclipse.dltk.tcl.parser.definitions.DefinitionManager.initialize(DefinitionManager.java:37)\ at org.eclipse.dltk.tcl.parser.definitions.DefinitionManager.getScopes(DefinitionManager.java:64)\ at org.eclipse.dltk.tcl.parser.definitions.DefinitionManager.createNewProcessor(DefinitionManager.java:83)\ at org.eclipse.dltk.tcl.parser.definitions.DefinitionManager.internalCoreProcessor(DefinitionManager.java:94)\ at org.eclipse.dltk.tcl.parser.definitions.DefinitionManager.createProcessor(DefinitionManager.java:78)\ at org.eclipse.dltk.tcl.internal.parser.NewTclSourceParser.(NewTclSourceParser.java:72)\ at org.eclipse.dltk.tcl.internal.parser.TclSourceParserFactory.createSourceParser(TclSourceParserFactory.java:16)\ at org.eclipse.dltk.tcl.internal.parser.TclSourceParserFactory.createSourceParser(TclSourceParserFactory.java:1)\ at org.eclipse.dltk.ast.parser.SourceParserManager$SourceParserContribution.createSourceParser(SourceParserManager.java:120)\ at org.eclipse.dltk.ast.parser.SourceParserManager.getSourceParser(SourceParserManager.java:95)\ at org.eclipse.dltk.core.DLTKLanguageManager.getSourceParser(DLTKLanguageManager.java:289)\ at org.eclipse.dltk.core.SourceParserUtil.parse(SourceParserUtil.java:40)\ at org.eclipse.dltk.ui.editor.highlighting.ASTSemanticHighlighter.parseSourceCode(ASTSemanticHighlighter.java:41)\ at org.eclipse.dltk.ui.editor.highlighting.ASTSemanticHighlighter.parseCode(ASTSemanticHighlighter.java:37)\ at org.eclipse.dltk.tcl.internal.ui.TclSemanticPositionUpdater.doHighlighting(TclSemanticPositionUpdater.java:49)\ at org.eclipse.dltk.ui.editor.highlighting.AbstractSemanticHighlighter.reconcile(AbstractSemanticHighlighter.java:70)\ at org.eclipse.dltk.internal.ui.editor.semantic.highlighting.SemanticHighlightingManager.enable(SemanticHighlightingManager.java:208)\ at org.eclipse.dltk.internal.ui.editor.semantic.highlighting.SemanticHighlightingManager.install(SemanticHighlightingManager.java:172)\ at org.eclipse.dltk.internal.ui.editor.semantic.highlighting.SemanticHighlightingManager.install(SemanticHighlightingManager.java:188)\ at org.eclipse.dltk.ui.preferences.AbstractScriptEditorColoringConfigurationBlock.installSemanticHighlighting(AbstractScriptEditorColoringConfigurationBlock.java:950)\ at org.eclipse.dltk.ui.preferences.AbstractScriptEditorColoringConfigurationBlock.createPreviewer(AbstractScriptEditorColoringConfigurationBlock.java:906)\ at org.eclipse.dltk.ui.preferences.AbstractScriptEditorColoringConfigurationBlock.createSyntaxPage(AbstractScriptEditorColoringConfigurationBlock.java:745)\ at org.eclipse.dltk.ui.preferences.AbstractScriptEditorColoringConfigurationBlock.createControl(AbstractScriptEditorColoringConfigurationBlock.java:520)\ at org.eclipse.dltk.ui.preferences.AbstractConfigurationBlockPreferencePage.createContents(AbstractConfigurationBlockPreferencePage.java:67)\ at org.eclipse.jface.preference.PreferencePage.createControl(PreferencePage.java:244)\ at org.eclipse.dltk.ui.preferences.AbstractConfigurationBlockPreferencePage.createControl(AbstractConfigurationBlockPreferencePage.java:57)\ at org.eclipse.jface.preference.PreferenceDialog.createPageControl(PreferenceDialog.java:1433)\ at org.eclipse.jface.preference.PreferenceDialog$8.run(PreferenceDialog.java:1196)\ at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)\ at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)\ at org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.java:1188)\ at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.showPage(FilteredPreferenceDialog.java:618)\ at org.eclipse.jface.preference.PreferenceDialog$5.lambda$0(PreferenceDialog.java:660)\ at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)\ at org.eclipse.jface.preference.PreferenceDialog$5.selectionChanged(PreferenceDialog.java:657)\ at org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.java:820)\ at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)\ at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)\ at org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(StructuredViewer.java:817)\ at org.eclipse.jface.viewers.ColumnViewer.firePostSelectionChanged(ColumnViewer.java:1065)\ at org.eclipse.jface.viewers.StructuredViewer.setSelection(StructuredViewer.java:1665)\ at org.eclipse.jface.viewers.TreeViewer.setSelection(TreeViewer.java:1091)\ at org.eclipse.jface.viewers.Viewer.setSelection(Viewer.java:375)\ at org.eclipse.oomph.setup.ui.recorder.PreferenceInitializationDialog$Initializer$2$2.run(PreferenceInitializationDialog.java:427)\ at org.eclipse.oomph.ui.UIUtil$7.run(UIUtil.java:693)\ at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)\ at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)\ at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4047)\ at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3663)\ at org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:168)\ at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:370)\ at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:470)\ at org.eclipse.oomph.setup.ui.recorder.PreferenceInitializationDialog$Initializer.run(PreferenceInitializationDialog.java:383)\ at org.eclipse.oomph.ui.UIUtil$5.run(UIUtil.java:602)\ at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)\ at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)\ at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4047)\ at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3663)\ at org.eclipse.jface.window.Window.runEventLoop(Window.java:823)\ at org.eclipse.jface.window.Window.open(Window.java:799)\ at org.eclipse.oomph.setup.ui.recorder.PreferenceInitializationDialog$Initializer$2$1$2.run(PreferenceInitializationDialog.java:530)\ at org.eclipse.oomph.ui.UIUtil$5.run(UIUtil.java:602)\ at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)\ at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)\ at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4047)\ at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3663)\ at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1151)\ at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)\ at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1042)\ at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:152)\ at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:639)\ at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)\ at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:546)\ at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173)\ at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)\ at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208)\ at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:143)\ at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:109)\ at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:439)\ at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:271)\ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)\ at java.base/java.lang.reflect.Method.invoke(Method.java:580)\ at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:651)\ at org.eclipse.equinox.launcher.Main.basicRun(Main.java:588)\ at org.eclipse.equinox.launcher.Main.run(Main.java:1459)

eclipse-modisco-bot commented 3 days ago

By Ed Willink on Mar 08, 2024 03:42

This is presumably associated with the org.eclipse.modisco.xml plugin which has only org.eclipse.emf.ecore.generated_package and org.eclipse.emf.ecore.extension_parser extension points.

The MoDisco plugin has no commits of any kind in the last 2 years and 5 months and only EF infrastructure tracking in the last 4 years and 3 months.

Is this a regression? Or is the something new that you have just tried following the increasingly error-free utility of the 'all' Eclipse?

org.eclipse.modisco.xml.emf.impl.RootImpl is a 'boring' EMF generated class but with one method of interest:

public DocumentTypeDeclaration getDtd() {\
    return dtd;\
}

While DocumentTypeDeclaration is another modisco class, we are clearly dealing with XML concepts.

The most likely bug is that org.eclipse.dltk.tcl.parser.definitions.DefinitionLoader.loadDefinitions is searching for DLTK XML classes and has failed to use a filter that excludes MoDisco's XM<L-like classes. Hence the CCE comes from a demand to cast to org.eclipse.dltk.tcl.definitions.Scope within multiple org.eclipse.dltk.tcl.parser calls creating the preference page.

Browsing the repo the problem line is:

    return (Scope) resource.getContents().get(0);

An EMF Resource was opened and assumed to be a DLTK resource with a Scope at the root.

The PMI's https://bugs.eclipse.org/bugs/enter_bug.cgi?product=DLTK reports disabled. So since I cannot transfer. I just close. Please open a DLTK bug.