eclipse-pde / eclipse.pde

Eclipse Public License 2.0
25 stars 62 forks source link

NPE in Cleanup Manifest while creating preview #1380

Open mikerumpf opened 2 weeks ago

mikerumpf commented 2 weeks ago

Using the Cleanup Manifest Dialog I encountered a NPE while creating the preview:

java.lang.reflect.InvocationTargetException at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:396) at org.eclipse.jface.wizard.WizardDialog.run(WizardDialog.java:1036) at org.eclipse.ltk.ui.refactoring.RefactoringWizard.createChange(RefactoringWizard.java:662) at org.eclipse.ltk.ui.refactoring.RefactoringWizard.computeUserInputSuccessorPage(RefactoringWizard.java:504) at org.eclipse.ltk.ui.refactoring.UserInputWizardPage.computeSuccessorPage(UserInputWizardPage.java:77) at org.eclipse.ltk.ui.refactoring.UserInputWizardPage.getNextPage(UserInputWizardPage.java:113) at org.eclipse.jface.wizard.WizardDialog.nextPressed(WizardDialog.java:915) at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:470) at org.eclipse.jface.dialogs.Dialog.lambda$0(Dialog.java:619) at org.eclipse.swt.events.SelectionListener$1.widgetSelected(SelectionListener.java:84) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:265) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:91) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4285) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1160) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4083) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3673) at org.eclipse.jface.window.Window.runEventLoop(Window.java:823) at org.eclipse.jface.window.Window.open(Window.java:799) at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.lambda$0(RefactoringWizardOpenOperation.java:190) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67) at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run(RefactoringWizardOpenOperation.java:209) at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run(RefactoringWizardOpenOperation.java:126) at org.eclipse.pde.internal.ui.wizards.tools.OrganizeManifestsAction.runOrganizeManfestsAction(OrganizeManifestsAction.java:82) at org.eclipse.pde.internal.ui.editor.plugin.ManifestEditor$1.run(ManifestEditor.java:801) at org.eclipse.jface.action.Action.runWithEvent(Action.java:474) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:581) at org.eclipse.jface.action.ActionContributionItem.lambda$5(ActionContributionItem.java:454) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:91) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4285) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1160) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4083) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3673) 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:152) at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:639) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:546) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:143) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:109) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:439) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:271) 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:668) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:605) at org.eclipse.equinox.launcher.Main.run(Main.java:1481) Caused by: java.lang.NullPointerException: Cannot read the array length because "superPermittedTypes" is null at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.checkPermitsAndAdd(SourceTypeBinding.java:1400) at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.checkPermitsInType(SourceTypeBinding.java:1260) at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.faultInTypesForFieldsAndMethods(SourceTypeBinding.java:1172) at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInTypes(CompilationUnitScope.java:675) at org.eclipse.jdt.internal.codeassist.SelectionEngine.selectType(SelectionEngine.java:1685) at org.eclipse.jdt.internal.core.NamedMember.resolveType(NamedMember.java:333) at org.eclipse.jdt.internal.core.NamedMember.resolveType(NamedMember.java:275) at org.eclipse.pde.internal.ui.search.dependencies.CalculateUsesOperation.addPackage(CalculateUsesOperation.java:185) at org.eclipse.pde.internal.ui.search.dependencies.CalculateUsesOperation.addPackages(CalculateUsesOperation.java:195) at org.eclipse.pde.internal.ui.search.dependencies.CalculateUsesOperation.findReferences(CalculateUsesOperation.java:144) at org.eclipse.pde.internal.ui.search.dependencies.CalculateUsesOperation.findReferences(CalculateUsesOperation.java:122) at org.eclipse.pde.internal.ui.search.dependencies.CalculateUsesOperation.findPackageReferences(CalculateUsesOperation.java:110) at org.eclipse.pde.internal.ui.search.dependencies.CalculateUsesOperation.execute(CalculateUsesOperation.java:68) at org.eclipse.ui.actions.WorkspaceModifyOperation.lambda$0(WorkspaceModifyOperation.java:112) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2451) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2476) at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:131) at org.eclipse.pde.internal.ui.wizards.tools.OrganizeManifestsProcessor.runCleanup(OrganizeManifestsProcessor.java:195) at org.eclipse.pde.internal.ui.wizards.tools.OrganizeManifestsProcessor$1.modifyModel(OrganizeManifestsProcessor.java:130) at org.eclipse.pde.internal.ui.util.PDEModelUtility.generateModelEdits(PDEModelUtility.java:343) at org.eclipse.pde.internal.ui.util.PDEModelUtility.changesForModelModication(PDEModelUtility.java:303) at org.eclipse.pde.internal.ui.wizards.tools.OrganizeManifestsProcessor.cleanProject(OrganizeManifestsProcessor.java:136) at org.eclipse.pde.internal.ui.wizards.tools.OrganizeManifestsProcessor.createChange(OrganizeManifestsProcessor.java:109) at org.eclipse.ltk.core.refactoring.participants.ProcessorBasedRefactoring.createChange(ProcessorBasedRefactoring.java:289) at org.eclipse.ltk.core.refactoring.CreateChangeOperation.run(CreateChangeOperation.java:119) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2451) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2476) at org.eclipse.ltk.internal.ui.refactoring.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:89) at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:124) Root exception: java.lang.NullPointerException: Cannot read the array length because "superPermittedTypes" is null at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.checkPermitsAndAdd(SourceTypeBinding.java:1400) at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.checkPermitsInType(SourceTypeBinding.java:1260) at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.faultInTypesForFieldsAndMethods(SourceTypeBinding.java:1172) at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInTypes(CompilationUnitScope.java:675) at org.eclipse.jdt.internal.codeassist.SelectionEngine.selectType(SelectionEngine.java:1685) at org.eclipse.jdt.internal.core.NamedMember.resolveType(NamedMember.java:333) at org.eclipse.jdt.internal.core.NamedMember.resolveType(NamedMember.java:275) at org.eclipse.pde.internal.ui.search.dependencies.CalculateUsesOperation.addPackage(CalculateUsesOperation.java:185) at org.eclipse.pde.internal.ui.search.dependencies.CalculateUsesOperation.addPackages(CalculateUsesOperation.java:195) at org.eclipse.pde.internal.ui.search.dependencies.CalculateUsesOperation.findReferences(CalculateUsesOperation.java:144) at org.eclipse.pde.internal.ui.search.dependencies.CalculateUsesOperation.findReferences(CalculateUsesOperation.java:122) at org.eclipse.pde.internal.ui.search.dependencies.CalculateUsesOperation.findPackageReferences(CalculateUsesOperation.java:110) at org.eclipse.pde.internal.ui.search.dependencies.CalculateUsesOperation.execute(CalculateUsesOperation.java:68) at org.eclipse.ui.actions.WorkspaceModifyOperation.lambda$0(WorkspaceModifyOperation.java:112) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2451) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2476) at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:131) at org.eclipse.pde.internal.ui.wizards.tools.OrganizeManifestsProcessor.runCleanup(OrganizeManifestsProcessor.java:195) at org.eclipse.pde.internal.ui.wizards.tools.OrganizeManifestsProcessor$1.modifyModel(OrganizeManifestsProcessor.java:130) at org.eclipse.pde.internal.ui.util.PDEModelUtility.generateModelEdits(PDEModelUtility.java:343) at org.eclipse.pde.internal.ui.util.PDEModelUtility.changesForModelModication(PDEModelUtility.java:303) at org.eclipse.pde.internal.ui.wizards.tools.OrganizeManifestsProcessor.cleanProject(OrganizeManifestsProcessor.java:136) at org.eclipse.pde.internal.ui.wizards.tools.OrganizeManifestsProcessor.createChange(OrganizeManifestsProcessor.java:109) at org.eclipse.ltk.core.refactoring.participants.ProcessorBasedRefactoring.createChange(ProcessorBasedRefactoring.java:289) at org.eclipse.ltk.core.refactoring.CreateChangeOperation.run(CreateChangeOperation.java:119) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2451) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2476) at org.eclipse.ltk.internal.ui.refactoring.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:89) at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:124)

Additional info is: `eclipse.buildId=4.32.0.20240606-1231 java.version=21 java.vendor=Eclipse Adoptium BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=de_DE Framework arguments: -product org.eclipse.epp.package.dsl.product Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.dsl.product -data file:/C:/ws_intern/ws_osgi/

This is a continuation of log file C:\ws_intern\ws_osgi.metadata.bak_0.log Created Time: 2024-08-27 10:40:11.755 `

laeubi commented 2 weeks ago

Can you share a Manifest that reproduce the error?

mikerumpf commented 2 weeks ago

Not sure but the download above seems to be fake...

The manifest is quite simple:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: myfoo.gp.osgi.datadiff
Bundle-SymbolicName: myfoo.gp.osgi.datadiff
Bundle-Version: 9.0.3.qualifier
Bundle-Description: Bundle implementing a diff algorithm for structured data.
Bundle-Category: model
Automatic-Module-Name: myfoo.gp.osgi.datadiff
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-17
Export-Package: myfoo.gp.osgi.datadiff
Import-Package: com.google.common.collect;version="27.1.0",
 myfoo.gp.osgi.prettyprint
Service-Component: OSGI-INF/datadiff.pretty.DiffableJsonPrinter.xml,
 OSGI-INF/datadiff.pretty.DiffableYamlPrinter.xml,
 OSGI-INF/datadiff.pretty.PatchJsonPrinter.xml,
 OSGI-INF/datadiff.pretty.PatchYamlPrinter.xml

If I remove the exported package the preview works fine. If I readd it the exception occurs again.

laeubi commented 2 weeks ago

Not sure but the download above seems to be fake...

Yes I reported the content to Github an deleted the comment.

merks commented 2 weeks ago

Not sure but the download above seems to be fake...

Yes I reported the content to Github an deleted the comment.

FYI, this has been happening across the board at GitHub since yesterday. I think the user just creates a new account and starts doing it again. But GitHub is actively deleting the posts...

mikerumpf commented 2 weeks ago

One additional thing I found out: The exception only occurs if the "calculate uses…" checkbox is selected. (Also the problem occurs only for one plugin in my workspace, for all others there are no issues)