Issue 1626: NPE when browsing a change in a project with cherry-pick as a merge strategy.
Status:  Released
Owner: ----
Closed:  Oct 2012
Reported by jan.opa...@gmail.com, Oct 25, 2012
NullPointerException is thrown when browsing a change in a project with cherry-pick as a merge strategy and changeMerge.test = true in gerrit config.

Affected Version: 2.4.2

Steps to reproduce:
1. In the Gerrit config set:
[changeMerge]
  test = true
2. Restart Gerrit.
3. Create a new project.
4. Go to project settings -> General.
5. Choose cherry-pick as a merge strategy.
6. Upload a change to the project.
7. Navigate to the change in the web UI.

What is the expected output? What do you see instead?
Expected output is to see the details of a selected change. Instead the background is getting greyed out and there is a pop up saying the an internal error has occured.

Please provide any additional information below.
In the error_log we can see:
[2012-10-25 09:49:27,109] WARN  / (Slf4jLog.java:50): Error in changeDetail
java.lang.NullPointerException
        at com.google.gerrit.server.git.MergeOp.writeCherryPickCommit(MergeOp.java:912)
        at com.google.gerrit.server.git.MergeOp.cherryPickChanges(MergeOp.java:724)
        at com.google.gerrit.server.git.MergeOp.preMerge(MergeOp.java:301)
        at com.google.gerrit.server.git.MergeOp.verifyMergeability(MergeOp.java:228)
        at com.google.gerrit.server.ChangeUtil.testMerge(ChangeUtil.java:177)
        at com.google.gerrit.httpd.rpc.changedetail.ChangeDetailFactory.load(ChangeDetailFactory.java:201)
        at com.google.gerrit.httpd.rpc.changedetail.ChangeDetailFactory.call(ChangeDetailFactory.java:161)
        at com.google.gerrit.httpd.rpc.changedetail.ChangeDetailFactory.call(ChangeDetailFactory.java:63)
        at com.google.gerrit.httpd.rpc.Handler.to(Handler.java:65)
        at com.google.gerrit.httpd.rpc.changedetail.ChangeDetailServiceImpl.changeDetail(ChangeDetailServiceImpl.java:47)
        at sun.reflect.GeneratedMethodAccessor46.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at com.google.gwtjsonrpc.server.MethodHandle.invoke(MethodHandle.java:91)
        at com.google.gwtjsonrpc.server.JsonServlet.doService(JsonServlet.java:379)
        at com.google.gwtjsonrpc.server.JsonServlet.service(JsonServlet.java:265)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263)
        at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178)
        at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62)
        at com.google.gerrit.pgm.http.jetty.GetUserFilter.doFilter(GetUserFilter.java:76)
        at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
        at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:168)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
        at com.google.gwtexpui.server.CacheControlFilter.doFilter(CacheControlFilter.java:76)
        at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
        at com.google.gerrit.httpd.RequestCleanupFilter.doFilter(RequestCleanupFilter.java:54)
        at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
        at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:168)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
        at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
        at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1322)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:473)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:921)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:403)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:856)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:114)
        at org.eclipse.jetty.server.handler.RequestLogHandler.handle(RequestLogHandler.java:59)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:114)
        at org.eclipse.jetty.server.Server.handle(Server.java:352)
        at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:596)
        at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1069)
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:805)
        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:218)
        at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:426)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:510)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint.access$000(SelectChannelEndPoint.java:34)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:450)
        at java.lang.Thread.run(Thread.java:679)

Oct 25, 2012
Project Member #1 david.pu...@sonymobile.com
Fixed with change #37755 [1]

[1] https://gerrit-review.googlesource.com/#/c/37755/
Status: Submitted
Labels: FixedIn-2.6
Oct 30, 2012
Project Member #2 edwin.ke...@gmail.com
Also fix in 2.5 [1].

[1] https://gerrit-review.googlesource.com/38870
Labels: -FixedIn-2.6 FixedIn-2.5
Oct 31, 2012
Project Member #3 edwin.ke...@gmail.com
(No comment was entered for this change.)
Status: Released