Bug 570257

Summary: Cannot invoke "org.eclipse.swt.internal.cocoa.NSWindow.windowNumber()" because "window" is null
Product: [Eclipse Project] Platform Reporter: Liviu Ionescu <ilg>
Component: SWTAssignee: Platform-SWT-Inbox <platform-swt-inbox>
Status: NEW --- QA Contact:
Severity: normal    
Priority: P3 CC: athoma22, jonah
Version: 4.18   
Target Milestone: ---   
Hardware: PC   
OS: Mac OS X   
Whiteboard:
Attachments:
Description Flags
Screenshot with error none

Description Liviu Ionescu CLA 2021-01-11 11:18:33 EST
I'm getting a NPE in Embedded CDT, when trying to open one of the Properties window (the C/C++ Build -> Settings)

!ENTRY org.eclipse.cdt.ui 4 4 2021-01-11 17:59:49.267
!MESSAGE Internal error
!STACK 0
java.lang.NullPointerException: Cannot invoke "org.eclipse.swt.internal.cocoa.NSWindow.windowNumber()" because "window" is null
	at org.eclipse.swt.widgets.Control.internal_new_GC(Control.java:2163)
	at org.eclipse.swt.graphics.GC.<init>(GC.java:262)
	at org.eclipse.swt.graphics.GC.<init>(GC.java:223)
	at org.eclipse.swt.widgets.Table.setScrollWidth(Table.java:2885)
	at org.eclipse.swt.widgets.Table.setScrollWidth(Table.java:2855)
	at org.eclipse.swt.widgets.Table.setRedraw(Table.java:2827)
	at org.eclipse.jface.viewers.AbstractTableViewer.inputChanged(AbstractTableViewer.java:574)
	at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:282)
	at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1634)
	at org.eclipse.cdt.ui.newui.ErrorParsTab.initMapParsers(ErrorParsTab.java:264)
	at org.eclipse.cdt.ui.newui.ErrorParsTab.performApply(ErrorParsTab.java:539)
	at org.eclipse.cdt.ui.newui.AbstractCPropertyTab.handleTabEvent(AbstractCPropertyTab.java:576)
	at org.eclipse.cdt.ui.newui.AbstractPage.forEach(AbstractPage.java:1100)
	at org.eclipse.cdt.ui.newui.AbstractPage$5.run(AbstractPage.java:687)
	at org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation.execute(WorkspaceModifyDelegatingOperation.java:71)
	at org.eclipse.ui.actions.WorkspaceModifyOperation.lambda$0(WorkspaceModifyOperation.java:110)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2292)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2317)
	at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:131)
	at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:436)
	at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:352)
	at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:468)
	at org.eclipse.ui.internal.progress.ProgressManager$RunnableWithStatus.run(ProgressManager.java:1117)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:74)
	at org.eclipse.ui.internal.progress.ProgressManager.lambda$27(ProgressManager.java:996)
	at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:236)
	at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:133)
	at org.eclipse.swt.widgets.Display.syncExec(Display.java:5050)
	at org.eclipse.ui.internal.progress.ProgressManager.runInUI(ProgressManager.java:996)
	at org.eclipse.cdt.ui.newui.AbstractPage.performSave(AbstractPage.java:706)
	at org.eclipse.cdt.ui.newui.AbstractPage.performApply(AbstractPage.java:554)
	at org.eclipse.jface.preference.PreferencePage.lambda$1(PreferencePage.java:289)
	at org.eclipse.swt.events.SelectionListener$1.widgetSelected(SelectionListener.java:84)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:252)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4443)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1512)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1535)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1520)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1324)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4229)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3839)
	at org.eclipse.jface.window.Window.runEventLoop(Window.java:823)
	at org.eclipse.jface.window.Window.open(Window.java:799)
	at org.eclipse.ui.dialogs.PropertyDialogAction.run(PropertyDialogAction.java:153)
	at org.eclipse.jface.action.Action.runWithEvent(Action.java:474)
	at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:580)
	at org.eclipse.jface.action.ActionContributionItem.lambda$4(ActionContributionItem.java:414)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4443)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1512)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1535)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1520)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1324)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4229)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3839)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1157)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:644)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:551)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:156)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:564)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1461)

This does happen only after using Eclipse for a while, so it might be related to depleted memory/resources.
Comment 1 Liviu Ionescu CLA 2021-01-15 16:06:10 EST
In certain situation the bug also occurs right after starting Eclipse, so the depleted resources probably are not internal to Eclipse.

Without being able to change the CDT settings, Eclipse is hardly usable.
Comment 2 Liviu Ionescu CLA 2021-01-15 16:13:54 EST
Created attachment 285291 [details]
Screenshot with error