Describe the bug
JVM crashes with SIGSEGV in gdk_pointer_ungrab when ending a Drag and Drop (DnD) operation in Native Wayland
To Reproduce
- Launch Eclipse under a Native Wayland environment (without setting
GDK_BACKEND=x11).
- Open the Bookmarks view via top menu: Window -> Show View -> Bookmarks.
- Click and drag the Bookmarks tab to dock it side-by-side with the Outline view tab (or any other view stack).
- Release the mouse button to complete the drag-and-drop operation.
- Eclipse freezes / terminates immediately with a JVM crash (SIGSEGV in
gdk_pointer_ungrab).
Expected behavior
The tab should be dragged and docked to the desired location successfully without crashing or freezing.
Screenshots
Environment:
- Select the platform(s) on which the behavior is seen:
-
Additional OS info (e.g. OS version, Linux Desktop, etc)
openSUSE Tumbleweed-Slowroll 20260901 x86_64
KDE
-
JRE/JDK version
openjdk version "25.0.4.1" 2026-08-18 LTS (Corretto/Temurin)
Version since
Eclipse 4.41.0.I20260828-1142
SWT 3.135.0 (org.eclipse.swt.gtk.linux.x86_64_3.135.0.v20260819-1952)
Workaround (or) Additional context
org.eclipse.swt.internal.gtk.version=3.24.53
And a log
!SESSION 2026-09-20 18:35:32.365 -----------------------------------------------
eclipse.buildId=4.41.0.I20260828-1142
java.version=25.0.4.1
java.vendor=Amazon.com Inc.
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=zh_CN
Command-line arguments: -os linux -ws gtk -arch x86_64
!ENTRY org.eclipse.ui 4 0 2026-09-20 18:44:39.729
!MESSAGE Unhandled event loop exception
!STACK 0
java.lang.NullPointerException: Cannot invoke "org.eclipse.swt.widgets.Shell.setCursor(org.eclipse.swt.graphics.Cursor)" because the return value of "org.eclipse.e4.ui.workbench.addons.dndaddon.DnDManager.getDragShell()" is null
at org.eclipse.e4.ui.workbench.addons.dndaddon.DnDManager.startDrag(DnDManager.java:241)
at org.eclipse.e4.ui.workbench.addons.dndaddon.DnDManager.lambda$0(DnDManager.java:84)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:169)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:91)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5888)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1659)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:5103)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4531)
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.ui.internal.Workbench.lambda$3(Workbench.java:680)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:583)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:193)
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:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
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)
at org.eclipse.equinox.launcher.Main.main(Main.java:1387)
Describe the bug
JVM crashes with SIGSEGV in gdk_pointer_ungrab when ending a Drag and Drop (DnD) operation in Native Wayland
To Reproduce
GDK_BACKEND=x11).gdk_pointer_ungrab).Expected behavior
The tab should be dragged and docked to the desired location successfully without crashing or freezing.
Screenshots
Environment:
Additional OS info (e.g. OS version, Linux Desktop, etc)
openSUSE Tumbleweed-Slowroll 20260901 x86_64
KDE
JRE/JDK version
openjdk version "25.0.4.1" 2026-08-18 LTS (Corretto/Temurin)
Version since
Eclipse
4.41.0.I20260828-1142SWT
3.135.0(org.eclipse.swt.gtk.linux.x86_64_3.135.0.v20260819-1952)Workaround (or) Additional context
org.eclipse.swt.internal.gtk.version=3.24.53
And a log
!SESSION 2026-09-20 18:35:32.365 -----------------------------------------------
eclipse.buildId=4.41.0.I20260828-1142
java.version=25.0.4.1
java.vendor=Amazon.com Inc.
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=zh_CN
Command-line arguments: -os linux -ws gtk -arch x86_64
!ENTRY org.eclipse.ui 4 0 2026-09-20 18:44:39.729
!MESSAGE Unhandled event loop exception
!STACK 0
java.lang.NullPointerException: Cannot invoke "org.eclipse.swt.widgets.Shell.setCursor(org.eclipse.swt.graphics.Cursor)" because the return value of "org.eclipse.e4.ui.workbench.addons.dndaddon.DnDManager.getDragShell()" is null
at org.eclipse.e4.ui.workbench.addons.dndaddon.DnDManager.startDrag(DnDManager.java:241)
at org.eclipse.e4.ui.workbench.addons.dndaddon.DnDManager.lambda$0(DnDManager.java:84)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:169)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:91)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5888)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1659)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:5103)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4531)
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.ui.internal.Workbench.lambda$3(Workbench.java:680)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:583)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:193)
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:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
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)
at org.eclipse.equinox.launcher.Main.main(Main.java:1387)