Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 368604 - NullPointerException when committing changes
Summary: NullPointerException when committing changes
Status: RESOLVED FIXED
Alias: None
Product: EGit
Classification: Technology
Component: Core (show other bugs)
Version: 1.2   Edit
Hardware: PC Windows 7
: P3 normal (vote)
Target Milestone: 1.3-M1   Edit
Assignee: Kevin Sawicki CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-01-14 12:11 EST by Marc-André Laperle CLA
Modified: 2012-01-24 14:41 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Marc-André Laperle CLA 2012-01-14 12:11:32 EST
Eclipse EGit 1.2.0.201112101922

I had a repo setup like this:

root-gitrepo-folder/javaproject/

In my workspace, I have a "General" project for root-gitrepo-folder and a Java project for root-gitrepo-folder/javaproject, both team shared. I had a bunch of committed files in javaproject and moved them to root-gitrepo-folder, including the .project file and settings. when trying to commit the changes, I got the exception.

I then tried to reproduce the NPE for the purpose of this bug by creating a new repo and a hello world java project then repeating the steps. Instead, I got a IllegalArgumentException.

java.lang.NullPointerException
	at org.eclipse.jgit.treewalk.filter.PathFilter.create(PathFilter.java:77)
	at org.eclipse.jgit.treewalk.TreeWalk.forPath(TreeWalk.java:117)
	at org.eclipse.jgit.treewalk.TreeWalk.forPath(TreeWalk.java:162)
	at org.eclipse.jgit.treewalk.TreeWalk.forPath(TreeWalk.java:196)
	at org.eclipse.egit.ui.internal.decorators.GitDocument.populate(GitDocument.java:159)
	at org.eclipse.egit.ui.internal.decorators.GitDocument.onRefsChanged(GitDocument.java:233)
	at org.eclipse.jgit.events.RefsChangedEvent.dispatch(RefsChangedEvent.java:55)
	at org.eclipse.jgit.events.RefsChangedEvent.dispatch(RefsChangedEvent.java:47)
	at org.eclipse.jgit.events.ListenerList.dispatch(ListenerList.java:120)
	at org.eclipse.jgit.lib.Repository.fireEvent(Repository.java:149)
	at org.eclipse.jgit.storage.file.RefDirectory.fireRefsChanged(RefDirectory.java:934)
	at org.eclipse.jgit.storage.file.RefDirectory.putLooseRef(RefDirectory.java:550)
	at org.eclipse.jgit.storage.file.RefDirectory.stored(RefDirectory.java:540)
	at org.eclipse.jgit.storage.file.RefDirectoryUpdate.doUpdate(RefDirectoryUpdate.java:124)
	at org.eclipse.jgit.lib.RefUpdate$1.execute(RefUpdate.java:489)
	at org.eclipse.jgit.lib.RefUpdate.updateImpl(RefUpdate.java:622)
	at org.eclipse.jgit.lib.RefUpdate.update(RefUpdate.java:484)
	at org.eclipse.jgit.lib.RefUpdate.update(RefUpdate.java:463)
	at org.eclipse.jgit.lib.RefUpdate.forceUpdate(RefUpdate.java:442)
	at org.eclipse.jgit.api.CommitCommand.call(CommitCommand.java:232)
	at org.eclipse.egit.core.op.CommitOperation.commit(CommitOperation.java:255)
	at org.eclipse.egit.core.op.CommitOperation.access$7(CommitOperation.java:233)
	at org.eclipse.egit.core.op.CommitOperation$1.run(CommitOperation.java:197)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2326)
	at org.eclipse.egit.core.op.CommitOperation.execute(CommitOperation.java:207)
	at org.eclipse.egit.ui.internal.commit.CommitUI$2.run(CommitUI.java:219)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)


and the IllegalArgumentException

java.lang.IllegalArgumentException: Empty path not permitted.
	at org.eclipse.jgit.treewalk.filter.PathFilter.create(PathFilter.java:80)
	at org.eclipse.jgit.treewalk.TreeWalk.forPath(TreeWalk.java:117)
	at org.eclipse.jgit.treewalk.TreeWalk.forPath(TreeWalk.java:162)
	at org.eclipse.jgit.treewalk.TreeWalk.forPath(TreeWalk.java:196)
	at org.eclipse.egit.ui.internal.decorators.GitDocument.populate(GitDocument.java:159)
	at org.eclipse.egit.ui.internal.decorators.GitDocument.onRefsChanged(GitDocument.java:233)
	at org.eclipse.jgit.events.RefsChangedEvent.dispatch(RefsChangedEvent.java:55)
	at org.eclipse.jgit.events.RefsChangedEvent.dispatch(RefsChangedEvent.java:47)
	at org.eclipse.jgit.events.ListenerList.dispatch(ListenerList.java:120)
	at org.eclipse.jgit.lib.Repository.fireEvent(Repository.java:149)
	at org.eclipse.jgit.storage.file.RefDirectory.fireRefsChanged(RefDirectory.java:934)
	at org.eclipse.jgit.storage.file.RefDirectory.putLooseRef(RefDirectory.java:550)
	at org.eclipse.jgit.storage.file.RefDirectory.stored(RefDirectory.java:540)
	at org.eclipse.jgit.storage.file.RefDirectoryUpdate.doUpdate(RefDirectoryUpdate.java:124)
	at org.eclipse.jgit.lib.RefUpdate$1.execute(RefUpdate.java:489)
	at org.eclipse.jgit.lib.RefUpdate.updateImpl(RefUpdate.java:622)
	at org.eclipse.jgit.lib.RefUpdate.update(RefUpdate.java:484)
	at org.eclipse.jgit.lib.RefUpdate.update(RefUpdate.java:463)
	at org.eclipse.jgit.lib.RefUpdate.forceUpdate(RefUpdate.java:442)
	at org.eclipse.jgit.api.CommitCommand.call(CommitCommand.java:232)
	at org.eclipse.egit.core.op.CommitOperation.commit(CommitOperation.java:255)
	at org.eclipse.egit.core.op.CommitOperation.access$7(CommitOperation.java:233)
	at org.eclipse.egit.core.op.CommitOperation$1.run(CommitOperation.java:197)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2326)
	at org.eclipse.egit.core.op.CommitOperation.execute(CommitOperation.java:207)
	at org.eclipse.egit.ui.internal.commit.CommitUI$2.run(CommitUI.java:219)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Comment 1 Marc-André Laperle CLA 2012-01-14 12:12:56 EST
I forgot to add, I deleted the project javaproject inside Eclipse before committing.
Comment 2 Kevin Sawicki CLA 2012-01-23 12:56:28 EST
Proposed fix pushed to: http://egit.eclipse.org/r/#change,4985
Comment 3 Kevin Sawicki CLA 2012-01-24 14:41:45 EST
Merged into master as commit 2f53bccc6ba60b9c3c1ec0ea6ae16df614e192ef