Skip to content

NullPointerException in org.eclipse.swt.widgets.Menu.wmTimer(Menu.java:1305) after migration to Eclipse 4.15 #2708

@reachrohitnair-debug

Description

@reachrohitnair-debug

Summary

After migrating our RCP application from Eclipse 3.6 to Eclipse 4.15 (2020-03), we started seeing random
NullPointerException crashes in org.eclipse.swt.widgets.Menu.wmTimer(Menu.java:1305).

Stack trace

java.lang.NullPointerException: null
at org.eclipse.swt.widgets.Menu.wmTimer(Menu.java:1305) ~[?:?]
at org.eclipse.swt.widgets.Control.WM_TIMER(Control.java:5622) ~[?:?]
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4802) ~[?:?]
at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:335) ~[?:?]
at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1480) ~[?:?]
at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2100) ~[?:?]
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4757) ~[?:?]
at org.eclipse.swt.internal.win32.OS.TrackPopupMenu(Native Method) ~[?:?]
at org.eclipse.swt.widgets.Menu._setVisible(Menu.java:237) ~[?:?]
at org.eclipse.swt.widgets.Display.runPopups(Display.java:3963) ~[?:?]
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3518) ~[?:?]
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1160) ~[?:?]
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338) ~[?:?]
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1049) ~[?:?]
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155) ~[?:?]
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:658) ~[?:?]
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338) ~[?:?]
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:557) ~[?:?]
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:154) ~[?:?]

Environment

  • Eclipse Platform: 4.15 (2020-03)
  • SWT version: 3.114.0.v20200304-0601
  • org.eclipse.core.runtime: 3.17.100.v20200203-0917
  • OS: Windows 11 64-bit
  • JVM: JDK11.0.15

Expected behavior

Menu.wmTimer() should safely exit if the menu or display has been disposed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions