Bug 567166 - NPE by adding existing git repo
Summary: NPE by adding existing git repo
Status: RESOLVED FIXED
Alias: None
Product: EGit
Classification: Technology
Component: UI (show other bugs)
Version: 5.9   Edit
Hardware: PC Windows 10
: P3 normal (vote)
Target Milestone: 5.10   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-09-20 10:57 EDT by Slavomir Varchula CLA
Modified: 2020-09-21 16:12 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Slavomir Varchula CLA 2020-09-20 10:57:03 EDT
What steps will reproduce the problem?
1. in tab 'Git repositories' click on link 'Add an existing local Git repository'


-- Error Details --
Date: Sun Sep 20 16:36:25 CEST 2020
Message: Error executing 'org.eclipse.egit.ui.RepositoriesViewClone': java.lang.NullPointerException
Severity: Error
Product: Eclipse IDE 4.17.0.20200910-1200 (org.eclipse.epp.package.jee.product)
Plugin: org.eclipse.ui.workbench
Session Data:
eclipse.buildId=4.17.0.I20200902-1800
java.version=11.0.8
java.vendor=AdoptOpenJDK
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=sk_SK
Framework arguments:  -product org.eclipse.epp.package.jee.product
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product

Exception Stack Trace:
org.eclipse.core.commands.ExecutionException: Error executing 'org.eclipse.egit.ui.RepositoriesViewClone': java.lang.NullPointerException
	at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:170)
	at org.eclipse.core.commands.Command.executeWithChecks(Command.java:488)
	at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:487)
	at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:213)
	at org.eclipse.ui.internal.handlers.LegacyHandlerService.executeCommand(LegacyHandlerService.java:389)
	at org.eclipse.ui.internal.handlers.LegacyHandlerService.executeCommand(LegacyHandlerService.java:366)
	at org.eclipse.egit.ui.UIUtils.executeCommand(UIUtils.java:828)
	at org.eclipse.egit.ui.UIUtils.executeCommand(UIUtils.java:815)
	at org.eclipse.egit.ui.internal.repository.RepositoriesView$4.linkActivated(RepositoriesView.java:402)
	at org.eclipse.ui.forms.widgets.AbstractHyperlink.handleActivate(AbstractHyperlink.java:215)
	at org.eclipse.ui.forms.widgets.AbstractHyperlink.handleMouseUp(AbstractHyperlink.java:309)
	at org.eclipse.ui.forms.widgets.AbstractHyperlink.lambda$3(AbstractHyperlink.java:117)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4195)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1037)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4012)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3612)
	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:153)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:150)
	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:657)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:594)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
Caused by: org.eclipse.e4.core.di.InjectionException: java.lang.NullPointerException
	at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:68)
	at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:319)
	at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:253)
	at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:173)
	at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:156)
	... 37 more
Caused by: java.lang.NullPointerException
	at org.eclipse.egit.ui.internal.components.FilteredCheckboxTree.getFilterString(FilteredCheckboxTree.java:129)
	at org.eclipse.ui.dialogs.FilteredTree.textChanged(FilteredTree.java:753)
	at org.eclipse.ui.dialogs.FilteredTree.setInitialText(FilteredTree.java:863)
	at org.eclipse.ui.dialogs.FilteredTree.init(FilteredTree.java:333)
	at org.eclipse.ui.dialogs.FilteredTree.<init>(FilteredTree.java:316)
	at org.eclipse.egit.ui.internal.components.FilteredCheckboxTree.<init>(FilteredCheckboxTree.java:70)
	at org.eclipse.egit.ui.internal.clone.SourceBranchPage$1.<init>(SourceBranchPage.java:139)
	at org.eclipse.egit.ui.internal.clone.SourceBranchPage.createControl(SourceBranchPage.java:139)
	at org.eclipse.jface.wizard.Wizard.createPageControls(Wizard.java:178)
	at org.eclipse.jface.wizard.WizardDialog.createPageControls(WizardDialog.java:743)
	at org.eclipse.jface.wizard.WizardDialog.createContents(WizardDialog.java:635)
	at org.eclipse.jface.window.Window.create(Window.java:431)
	at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1094)
	at org.eclipse.jface.window.Window.open(Window.java:788)
	at org.eclipse.egit.ui.internal.repository.tree.command.CloneCommand.execute(CloneCommand.java:85)
	at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:283)
	at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:97)
	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.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
	... 41 more
Comment 1 Thomas Wolf CLA 2020-09-21 09:04:13 EDT
Can reproduce. Eclipse definitely has too many settings.

It's not a new bug.

Work-around:

1. Quit Eclipse
2. From file <workspace>/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs, remove the line

  SHOW_FILTERED_TEXTS=false

3. Restart Eclipse. Now it should work.

I don't even know where to set this "preference" in the UI. Only found this by examining the code of org.eclipse.ui.dialogs.FilteredTree. I can reproduce only when this setting is false.

Root cause is in EGit, though; it lacks a needed null check for this case.
Comment 2 Thomas Wolf CLA 2020-09-21 14:28:30 EDT
(In reply to Thomas Wolf from comment #1)
> I don't even know where to set this "preference" in the UI.

After checking all of the code of Eclipse Platform: there is no UI to set this preference.
Comment 3 Eclipse Genie CLA 2020-09-21 15:26:57 EDT
New Gerrit change created: https://git.eclipse.org/r/c/egit/egit/+/169681
Comment 4 Slavomir Varchula CLA 2020-09-21 15:47:21 EDT
Hello Thomas,
thank you for quick help.

It's working. :)

Slavo