Skip to content

NPE Error when trying to install incubator plug-ins (including workaround) #263

@jonahgraham

Description

@jonahgraham

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.

Image
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:

  1. 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):
Image
  1. From Help -> Install new software, choose the py4j site and install Py4J (complete the wizard):
Image
  1. After Restart, do Help -> Install new software again and install the incubator components normally.

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