Project Properties: "Add external source folder" fails quietly (NullPointerException)
Describe the bug The "Add external source folder" button in the Libraries tab of the Include Path section of project properties fails quietly for one of my projects. The Error log view shows a corresponding exception:
Unhandled event loop exception
java.lang.NullPointerException at org.eclipse.dltk.internal.ui.wizards.BuildpathDialogAccess.internalExtChooseFolderEntry(BuildpathDialogAccess.java:440) at org.eclipse.dltk.internal.ui.wizards.BuildpathDialogAccess.chooseExtSourceFolderEntries(BuildpathDialogAccess.java:382) at org.eclipse.php.internal.ui.preferences.includepath.PHPLibrariesWorkbookPage.opensExtSourceFolderDialog(PHPLibrariesWorkbookPage.java:674) at org.eclipse.php.internal.ui.preferences.includepath.PHPLibrariesWorkbookPage.libaryPageCustomButtonPressed(PHPLibrariesWorkbookPage.java:257) at org.eclipse.php.internal.ui.preferences.includepath.PHPLibrariesWorkbookPage.access$0(PHPLibrariesWorkbookPage.java:238) at org.eclipse.php.internal.ui.preferences.includepath.PHPLibrariesWorkbookPage$LibrariesAdapter.customButtonPressed(PHPLibrariesWorkbookPage.java:187) at org.eclipse.dltk.internal.ui.wizards.dialogfields.TreeListDialogField.buttonPressed(TreeListDialogField.java:156) at org.eclipse.dltk.internal.ui.wizards.dialogfields.TreeListDialogField.doButtonSelected(TreeListDialogField.java:389) at org.eclipse.dltk.internal.ui.wizards.dialogfields.TreeListDialogField.access$2(TreeListDialogField.java:385) at org.eclipse.dltk.internal.ui.wizards.dialogfields.TreeListDialogField$2.widgetSelected(TreeListDialogField.java:348) 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:4209) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1043) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4026) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3626) 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:4209) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1043) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4026) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3626) 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:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) 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)
Describe the eclipse environment Eclipse 2021-03 (4.19.0) Build id: 20210312-0638 4.19.0.I20210303-1800 PHP Development Tools (PDT) 7.2.0.202005271851 Eclipse PDT
Describe your system
- OS: Windows
- Version 10
To Reproduce Steps to reproduce the behavior:
- Create a project with the problem
- Secondary click on the project from the project explorer
- Click on Properties
- Click on Include Path, in Source Paths, in PHP
- Click on the Libraries tab
- Click on Add External Source Folder
Expected behavior A Windows folder selection dialog should appear.
Additional context The project with the problem was created using Remote Systems Explorer (RSE, in the Remote Systems view).