My favorites | Sign in
Project Home Downloads Wiki Issues Source
New issue   Search
for
  Advanced search   Search tips   Subscriptions
Issue 3626: NullPointerException / IndexOutOfBoundsException on newly created repos that don't have any commits yet
2 people starred this issue and may be notified of changes. Back to list
Status:  New
Owner:  ----


Sign in to add a comment
 
Reported by tsuna...@gmail.com, Oct 21, 2015
Affected Version: 2.11.3, 2.11.4

What steps will reproduce the problem?
1. Create a new project with an empty Git repo
2. Send some changes for review
3. Try to submit one of the changes farther into the review stream

What is the expected output? What do you see instead?
Gerrit shouldn't get a NullPointerException / IndexOutOfBoundsException but does, see stack traces below.

Please provide any additional information below.


[2015-10-21 00:05:45,120] ERROR com.google.gerrit.server.git.ChangeMergeQueue : Merge attempt for newproj1,refs/heads/master failed
java.lang.NullPointerException
        at com.google.gerrit.server.git.MergeOp.updateBranch(MergeOp.java:665)
        at com.google.gerrit.server.git.MergeOp.merge(MergeOp.java:281)
        at com.google.gerrit.server.git.ChangeMergeQueue$2.call(ChangeMergeQueue.java:208)
        at com.google.gerrit.server.git.ChangeMergeQueue$2.call(ChangeMergeQueue.java:205)
        at com.google.gerrit.server.util.RequestScopePropagator$5.call(RequestScopePropagator.java:222)
        at com.google.gerrit.server.util.RequestScopePropagator$4.call(RequestScopePropagator.java:201)
        at com.google.gerrit.server.git.PerThreadRequestScope$Propagator$1.call(PerThreadRequestScope.java:75)
        at com.google.gerrit.server.git.ChangeMergeQueue.mergeImpl(ChangeMergeQueue.java:205)
        at com.google.gerrit.server.git.ChangeMergeQueue.access$200(ChangeMergeQueue.java:54)
        at com.google.gerrit.server.git.ChangeMergeQueue$MergeEntry.run(ChangeMergeQueue.java:248)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
        at com.google.gerrit.server.git.WorkQueue$Task.run(WorkQueue.java:379)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
[2015-10-21 00:05:45,202] ERROR com.google.gerrit.server.git.ChangeMergeQueue : Merge attempt for newproj2,refs/heads/master failed
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
        at java.util.ArrayList.rangeCheck(ArrayList.java:635)
        at java.util.ArrayList.get(ArrayList.java:411)
        at com.google.gerrit.server.git.strategy.MergeIfNecessary._run(MergeIfNecessary.java:39)
        at com.google.gerrit.server.git.strategy.SubmitStrategy.run(SubmitStrategy.java:118)
        at com.google.gerrit.server.git.MergeOp.preMerge(MergeOp.java:410)
        at com.google.gerrit.server.git.MergeOp.merge(MergeOp.java:280)
        at com.google.gerrit.server.git.ChangeMergeQueue$2.call(ChangeMergeQueue.java:208)
        at com.google.gerrit.server.git.ChangeMergeQueue$2.call(ChangeMergeQueue.java:205)
        at com.google.gerrit.server.util.RequestScopePropagator$5.call(RequestScopePropagator.java:222)
        at com.google.gerrit.server.util.RequestScopePropagator$4.call(RequestScopePropagator.java:201)
        at com.google.gerrit.server.git.PerThreadRequestScope$Propagator$1.call(PerThreadRequestScope.java:75)
        at com.google.gerrit.server.git.ChangeMergeQueue.mergeImpl(ChangeMergeQueue.java:205)
        at com.google.gerrit.server.git.ChangeMergeQueue.access$200(ChangeMergeQueue.java:54)
        at com.google.gerrit.server.git.ChangeMergeQueue$MergeEntry.run(ChangeMergeQueue.java:248)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
        at com.google.gerrit.server.git.WorkQueue$Task.run(WorkQueue.java:379)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)

Oct 21, 2015
Project Member #1 david.pu...@sonymobile.com
Reproducible with the following steps:

1. Create a new project without the initial commit
2. Clone the project
3. Create two commits and push for review
4. Approve and try to submit the second one (which can't be submitted because the first one is still open).

Note that although an exception is thrown, the change will merge successfully when the dependency change has been merged.

I don't think this is critical enough to fix on stable-2.11.  I have not tried to reproduce it on master.

Sign in to add a comment

Powered by Google Project Hosting