I wanted to test Evolve with NatTable again, since you promoted that it works now.
I downloaded the current Evolve release 0.278 and placed it in the NatTable E4 examples application. Like described in the readme, I removed the win32 SWT fragment and renamed the Evolve JAR to match the filename.
This fails due to the following error:
java.lang.ClassCastException: class org.eclipse.swt.widgets.SwtComposite cannot be cast to class org.eclipse.swt.widgets.DartControl (org.eclipse.swt.widgets.SwtComposite and org.eclipse.swt.widgets.DartControl are in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @139f7944)
at org.eclipse.swt.widgets.DartControl.computeBoundsZoom(DartControl.java:4168)
at org.eclipse.swt.widgets.DartControl.computeSize(DartControl.java:619)
at org.eclipse.swt.widgets.Control.computeSize(Control.java:542)
at org.eclipse.jface.dialogs.Dialog.setButtonLayoutData(Dialog.java:957)
at org.eclipse.jface.dialogs.Dialog.createButton(Dialog.java:626)
at org.eclipse.jface.dialogs.ErrorDialog.createButtonsForButtonBar(ErrorDialog.java:175)
at org.eclipse.jface.dialogs.IconAndMessageDialog.createButtonBar(IconAndMessageDialog.java:176)
at org.eclipse.jface.dialogs.IconAndMessageDialog.createDialogAndButtonArea(IconAndMessageDialog.java:226)
at org.eclipse.jface.dialogs.ErrorDialog.createDialogAndButtonArea(ErrorDialog.java:262)
at org.eclipse.jface.dialogs.IconAndMessageDialog.createContents(IconAndMessageDialog.java:204)
at org.eclipse.jface.window.Window.create(Window.java:426)
at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1090)
at org.eclipse.jface.window.Window.open(Window.java:783)
at org.eclipse.jface.dialogs.ErrorDialog.open(ErrorDialog.java:348)
at org.eclipse.e4.ui.internal.workbench.swt.WorkbenchStatusReporter.openDialog(WorkbenchStatusReporter.java:125)
at org.eclipse.e4.ui.internal.workbench.swt.WorkbenchStatusReporter.report(WorkbenchStatusReporter.java:62)
at org.eclipse.e4.core.services.statusreporter.StatusReporter.show(StatusReporter.java:133)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5$1.eventLoopException(PartRenderingEngine.java:1137)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.handle(PartRenderingEngine.java:1178)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.lambda$1(PartRenderingEngine.java:1155)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:45)
at org.eclipse.swt.widgets.SwtSynchronizer.runAsyncMessages(SwtSynchronizer.java:141)
at org.eclipse.swt.widgets.SwtDisplay.runAsyncMessages(SwtDisplay.java:4388)
at org.eclipse.swt.widgets.SwtDisplay.readAndDispatch(SwtDisplay.java:3995)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1456)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1160)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1051)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.start(E4Application.java:166)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:219)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:149)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:115)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:467)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:298)
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:615)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:563)
at org.eclipse.equinox.launcher.Main.run(Main.java:1415)
Then I tried the simpler way and created a SWT only runtime for the NatTable examples application. Only the NatTableExamples.jar, the SWT JAR (interfaces, not the OS dependent fragment) and the Evolve JAR. Then I tried to launch it via
java -cp * org.eclipse.nebula.widgets.nattable.examples.NatTableExamples
This fails due to the following error:
Exception in thread "main" java.lang.ClassCastException: class org.eclipse.swt.widgets.SwtShell cannot be cast to class org.eclipse.swt.widgets.DartControl (org.eclipse.swt.widgets.SwtShell and org.eclipse.swt.widgets.DartControl are in unnamed module of loader 'app')
at org.eclipse.swt.widgets.DartControl.computeBoundsZoom(DartControl.java:4168)
at org.eclipse.swt.widgets.DartControl.computeSize(DartControl.java:619)
at org.eclipse.swt.widgets.Control.computeSize(Control.java:542)
at org.eclipse.swt.layout.GridData.computeSize(GridData.java:527)
at org.eclipse.swt.layout.SwtGridLayout.layout(SwtGridLayout.java:146)
at org.eclipse.swt.layout.SwtGridLayout.layout(SwtGridLayout.java:120)
at org.eclipse.swt.layout.GridLayout.layout(GridLayout.java:180)
at org.eclipse.swt.widgets.SwtComposite.updateLayout(SwtComposite.java:1397)
at org.eclipse.swt.widgets.SwtComposite.WM_SIZE(SwtComposite.java:1815)
at org.eclipse.swt.widgets.SwtCanvas.WM_SIZE(SwtCanvas.java:463)
at org.eclipse.swt.widgets.SwtDecorations.WM_SIZE(SwtDecorations.java:1774)
at org.eclipse.swt.widgets.SwtControl.windowProc(SwtControl.java:5406)
at org.eclipse.swt.widgets.SwtCanvas.windowProc(SwtCanvas.java:349)
at org.eclipse.swt.widgets.SwtDecorations.windowProc(SwtDecorations.java:1593)
at org.eclipse.swt.widgets.SwtShell.windowProc(SwtShell.java:2532)
at org.eclipse.swt.widgets.SwtDisplay.windowProc(SwtDisplay.java:5403)
at org.eclipse.swt.internal.win32.OS.ShowWindow(Native Method)
at org.eclipse.swt.widgets.SwtDecorations.setVisible(SwtDecorations.java:1385)
at org.eclipse.swt.widgets.SwtShell.setVisible(SwtShell.java:2264)
at org.eclipse.swt.widgets.SwtShell.open(SwtShell.java:1367)
at org.eclipse.swt.widgets.Shell.open(Shell.java:655)
I have the org.eclipse.swt_3.133.0.v20260225-1014.jar in my runtimes, start the applications using Java 21.
Any ideas what could be wrong? From the docs I would assume this should work. I really can't explain the classloading issues.
I wanted to test Evolve with NatTable again, since you promoted that it works now.
I downloaded the current Evolve release 0.278 and placed it in the NatTable E4 examples application. Like described in the readme, I removed the win32 SWT fragment and renamed the Evolve JAR to match the filename.
This fails due to the following error:
Then I tried the simpler way and created a SWT only runtime for the NatTable examples application. Only the NatTableExamples.jar, the SWT JAR (interfaces, not the OS dependent fragment) and the Evolve JAR. Then I tried to launch it via
java -cp * org.eclipse.nebula.widgets.nattable.examples.NatTableExamplesThis fails due to the following error:
I have the
org.eclipse.swt_3.133.0.v20260225-1014.jarin my runtimes, start the applications using Java 21.Any ideas what could be wrong? From the docs I would assume this should work. I really can't explain the classloading issues.