davideuler / gitblit

Automatically exported from code.google.com/p/gitblit
Apache License 2.0
0 stars 0 forks source link

NullPointerException when browsing repo with empty or non-existing master branch #527

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
It seems Gitblit chokes when a repository it hosts either has no master branch, 
or a master branch with no commits. The repository has other branches with 
commits, but these commits cannot be viewed without Gitblit throwing a 
NullPointerException.

What steps will reproduce the problem?
1. Set up Gitblit GO (add SSH key for admin user)
2. Create new repository "example.git" via Gitblit web interface
3. On workstation run "git init example.git"
4. cd example.git
5. git checkout -b develop
6. touch foo.txt
7. git add foo.txt
8. git commit -m"Add empty foo.txt"
9. git remote add gitblit ssh://admin@gitblit.vm:29418/example.git
10. git push gitblit develop
11. Go to https://gitblit.vm:8443/summary/example.git
12. Click on the commit message "Add empty foo.txt"
13. Observe "Internal error"

What version of the product are you using? On what operating system?

Gitblit GO 1.6.2 on an Ubuntu 12.04 Vagrant VM

Please provide any additional information below.

Stacktrace:

2014-11-05 21:10:00 [ERROR] Can't instantiate page using constructor public 
com.gitblit.wicket.pages.CommitPage(org.apache.wicket.PageParameters) and 
argument r = "example.git" h = "refs/heads/develop"
org.apache.wicket.WicketRuntimeException: Can't instantiate page using 
constructor public 
com.gitblit.wicket.pages.CommitPage(org.apache.wicket.PageParameters) and 
argument r = "example.git" h = "refs/heads/
develop"
        at org.apache.wicket.session.DefaultPageFactory.createPage(DefaultPageFactory.java:212)
        at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:89)
        at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.newPage(BookmarkablePageRequestTarget.java:305)
        at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.getPage(BookmarkablePageRequestTarget.java:320)
        at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.processEvents(BookmarkablePageRequestTarget.java:234)
        at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)
        at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1279)
        at org.apache.wicket.RequestCycle.step(RequestCycle.java:1358)
        at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1465)
        at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
        at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:486)
        at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:319)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)
        at com.gitblit.servlet.EnforceAuthenticationFilter.doFilter(EnforceAuthenticationFilter.java:87)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)
        at com.gitblit.servlet.ProxyFilter$1.doFilter(ProxyFilter.java:74)
        at com.gitblit.servlet.ProxyFilter.doFilter(ProxyFilter.java:77)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:583)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1125)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1059)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
        at org.eclipse.jetty.server.Server.handle(Server.java:497)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:248)
        at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:610)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:539)
        at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
        at org.apache.wicket.session.DefaultPageFactory.createPage(DefaultPageFactory.java:188)
        ... 34 more
Caused by: java.lang.NullPointerException
        at org.eclipse.jgit.lib.ObjectIdOwnerMap.get(ObjectIdOwnerMap.java:131)
        at org.eclipse.jgit.revwalk.RevWalk.parseAny(RevWalk.java:837)
        at org.eclipse.jgit.revwalk.RevWalk.parseCommit(RevWalk.java:752)
        at com.syntevo.bugtraq.BugtraqConfig.getBaseConfig(BugtraqConfig.java:170)
        at com.syntevo.bugtraq.BugtraqConfig.read(BugtraqConfig.java:63)
        at com.gitblit.utils.BugtraqProcessor.processTextRegex(BugtraqProcessor.java:151)
        at com.gitblit.utils.BugtraqProcessor.processPlainCommitMessage(BugtraqProcessor.java:89)
        at com.gitblit.utils.BugtraqProcessor.processCommitMessage(BugtraqProcessor.java:73)
        at com.gitblit.wicket.pages.RepositoryPage.addFullText(RepositoryPage.java:563)
        at com.gitblit.wicket.pages.CommitPage.<init>(CommitPage.java:122)
        ... 39 more

Original issue reported on code.google.com by daf...@gmail.com on 5 Nov 2014 at 8:18

GoogleCodeExporter commented 9 years ago
Identical situtation also on CommitDiffPage

Caused by: java.lang.NullPointerException
        at org.eclipse.jgit.lib.ObjectIdOwnerMap.get(ObjectIdOwnerMap.java:131)
        at org.eclipse.jgit.revwalk.RevWalk.parseAny(RevWalk.java:837)
        at org.eclipse.jgit.revwalk.RevWalk.parseCommit(RevWalk.java:752)
        at com.syntevo.bugtraq.BugtraqConfig.getBaseConfig(BugtraqConfig.java:170)
        at com.syntevo.bugtraq.BugtraqConfig.read(BugtraqConfig.java:63)
        at com.gitblit.utils.BugtraqProcessor.processTextRegex(BugtraqProcessor.java:151)
        at com.gitblit.utils.BugtraqProcessor.processPlainCommitMessage(BugtraqProcessor.java:89)
        at com.gitblit.utils.BugtraqProcessor.processCommitMessage(BugtraqProcessor.java:73)
        at com.gitblit.wicket.pages.RepositoryPage.addFullText(RepositoryPage.java:563)
        at com.gitblit.wicket.pages.CommitDiffPage.<init>(CommitDiffPage.java:94)

Original comment by gregor.r...@gmail.com on 22 Jan 2015 at 4:26

GoogleCodeExporter commented 9 years ago
The underlying issue is your HEAD points to nothing useful.  Both failures are 
in Bugtraq which is common code that Gitblit and SmartGit collaborate on.

Could you try setting the default branch of your repo?  You can do that under 
miscellaneous in Edit Repository.

Original comment by James.Mo...@gmail.com on 26 Feb 2015 at 2:53

GoogleCodeExporter commented 9 years ago
I've fixed the Bugtraq failures for the next release.

Setting a valid HEAD will likely fix your issue.

Original comment by James.Mo...@gmail.com on 26 Feb 2015 at 3:05