Issue 3289: NullPointException when use gitweb with gerrit 2.10.2
Status:  Submitted
Owner: ----
Closed:  Apr 2015
Reported by w...@gaofamily.org, Apr 10, 2015
Affected Version: 2.10.2

What steps will reproduce the problem?
1. On CentOS 7, installed gerrit 2.10.2 and gitweb (from centos repo).
2. Configured and make sure gerrit is working. Configure gitweb as internal.
3. From any change, click on file's gitweb link.

What is the expected output? What do you see instead?
It suppose to bring me to gitweb page. But I got a server error page. and seeing following exception in gerrit's error log.

java.lang.NullPointerException
	at com.google.gerrit.httpd.gitweb.GitWebServlet.service(GitWebServlet.java:368)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
	at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:279)
	at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:269)
	at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:180)
	at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)
	at com.google.gwtexpui.server.CacheControlFilter.doFilter(CacheControlFilter.java:70)
	at com.google.gerrit.httpd.RunAsFilter.doFilter(RunAsFilter.java:113)
	at com.google.gerrit.httpd.RequireSslFilter.doFilter(RequireSslFilter.java:68)
	at com.google.gerrit.httpd.AllRequestFilter$FilterProxy$1.doFilter(AllRequestFilter.java:64)
	at com.google.gerrit.httpd.AllRequestFilter$FilterProxy.doFilter(AllRequestFilter.java:57)
	at com.google.gerrit.httpd.RequestContextFilter.doFilter(RequestContextFilter.java:75)
	at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:119)
	at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133)
	at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130)
	at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203)
	at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1636)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:564)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:219)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1111)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:498)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1045)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:98)
	at org.eclipse.jetty.server.Server.handle(Server.java:461)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:284)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:244)
	at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:534)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:607)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:536)
	at java.lang.Thread.run(Thread.java:745)


Please provide any additional information below.
For gitweb file view, there's no "a" parameter link branch, rooter and so on.
But in GitWebServlet.java, line: 368, it's checking it as:

if (params.get("a").equals(PROJECT_LIST_ACTION)) {

This cause NullPointException. It should be:

if (PROJECT_LIST_ACTION.equals(params.get("a")) {

Currently, my workaround is: define "gitweb.type = custom" and give an "a" parameter in "git.file"
Apr 12, 2015
Project Member #1 david.pu...@sonymobile.com
https://gerrit-review.googlesource.com/#/c/67053/
Status: ChangeUnderReview
Apr 14, 2015
Project Member #2 david.pu...@sonymobile.com
(No comment was entered for this change.)
Status: Submitted
Labels: FixedIn-2.10.3