When trying to install most any Incubator plug-ins into Trace Compass an NPE error is hit that prevents proceeding. The underlying bug is eclipse-equinox/p2#1050. Here I provide a workaround for incubator users.
The Problem
When installing, if Py4J is a required bundle, the trust dialog is shown, but the "Trust Selected" button never gets enabled. Pressing some buttons can generate NPEs too.
NPE stacktrace
!ENTRY org.eclipse.jface 4 2 2026-03-11 14:28:15.411
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.jface".
!STACK 0
java.lang.NullPointerException: Cannot invoke "org.eclipse.jface.viewers.TreeNode.getChildren()" because "treeNode" is null
at org.eclipse.equinox.internal.p2.ui.dialogs.TrustAuthorityDialog.getAllChildren(TrustAuthorityDialog.java:817)
at org.eclipse.equinox.internal.p2.ui.dialogs.TrustAuthorityDialog.getAllChildren(TrustAuthorityDialog.java:812)
at org.eclipse.equinox.internal.p2.ui.dialogs.TrustAuthorityDialog.lambda$3(TrustAuthorityDialog.java:261)
at org.eclipse.jface.viewers.CheckboxTreeViewer$1.run(CheckboxTreeViewer.java:168)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:167)
at org.eclipse.jface.viewers.CheckboxTreeViewer.fireCheckStateChanged(CheckboxTreeViewer.java:165)
at org.eclipse.jface.viewers.CheckboxTreeViewer.handleSelect(CheckboxTreeViewer.java:295)
at org.eclipse.jface.viewers.StructuredViewer$4.widgetSelected(StructuredViewer.java:1198)
at org.eclipse.jface.util.OpenStrategy.fireSelectionEvent(OpenStrategy.java:262)
at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:420)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:91)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5884)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1656)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:5099)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4540)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:823)
at org.eclipse.jface.window.Window.open(Window.java:799)
at org.eclipse.equinox.internal.p2.ui.ValidationDialogServiceUI.lambda$18(ValidationDialogServiceUI.java:469)
at org.eclipse.ui.internal.PendingSyncExec.run(PendingSyncExec.java:68)
at org.eclipse.ui.internal.UILockListener.doPendingWork(UILockListener.java:166)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:5074)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4543)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1151)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1042)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:678)
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:185)
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:627)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
at org.eclipse.equinox.launcher.Main.run(Main.java:1431)
at org.eclipse.equinox.launcher.Main.main(Main.java:1403)
Workaround
The workaround is to manually install Py4J manually first:
- Add https://eclipse.py4j.org/ (Trailing slash is critical) to Available Software Sites. (If you already have the non
/ version, delete it and reopen preferences):
- From Help -> Install new software, choose the py4j site and install Py4J (complete the wizard):
- After Restart, do Help -> Install new software again and install the incubator components normally.
When trying to install most any Incubator plug-ins into Trace Compass an NPE error is hit that prevents proceeding. The underlying bug is eclipse-equinox/p2#1050. Here I provide a workaround for incubator users.
The Problem
When installing, if Py4J is a required bundle, the trust dialog is shown, but the "Trust Selected" button never gets enabled. Pressing some buttons can generate NPEs too.
NPE stacktrace
Workaround
The workaround is to manually install Py4J manually first:
/version, delete it and reopen preferences):