Consistently annotate changeCache as @Nullable
The changeCache is null when in the context of BatchProgramModule.
The only consumer of changeCache, VisibleRefFilter, is prepared to
handle a null value, so in all code paths it is okay for it to be
null.
This makes reindex work again.  Regression introduced in
a758640bc3 (VisibleRefFilter: Avoid
touching the database for drafts, 2016-06-03):
 $ java -jar buck-out/gen/gerrit/gerrit.war reindex -d ../gerrit-testsite
[...]
 Reindexing changes: projects: 66% (2/3)[2016-06-06 16:18:36,781] [Index-Batch-3] WARN  com.google.gerrit.server.index.change.AllChangesIndexer : Failed to index change 18
 com.google.inject.ProvisionException: Unable to provision, see the following errors:
 1) null returned by binding at com.google.gerrit.pgm.util.BatchProgramModule.configure(BatchProgramModule.java:126)
  but parameter 8 of com.google.gerrit.server.project.ProjectControl.<init>() is not @Nullable
   while locating com.google.gerrit.server.git.SearchingChangeCacheImpl
     for parameter 8 at com.google.gerrit.server.project.ProjectControl.<init>(ProjectControl.java:177)
   while locating com.google.gerrit.server.project.ProjectControl annotated with @com.google.inject.internal.UniqueAnnotations$Internal(value=4)
Reported-by: Viktar Donich <viktard@google.com>
Change-Id: Ia0ca0e0e153c9f357e5ebc6edf4b1962a2490f2d
			
			
This commit is contained in:
		| @@ -16,6 +16,7 @@ package com.google.gerrit.acceptance; | ||||
|  | ||||
| import com.google.common.collect.Lists; | ||||
| import com.google.gerrit.acceptance.InProcessProtocol.Context; | ||||
| import com.google.gerrit.common.Nullable; | ||||
| import com.google.gerrit.common.data.Capable; | ||||
| import com.google.gerrit.extensions.registration.DynamicSet; | ||||
| import com.google.gerrit.reviewdb.client.Account; | ||||
| @@ -212,7 +213,7 @@ class InProcessProtocol extends TestProtocol<Context> { | ||||
|     private final Provider<ReviewDb> dbProvider; | ||||
|     private final Provider<CurrentUser> userProvider; | ||||
|     private final TagCache tagCache; | ||||
|     private final SearchingChangeCacheImpl changeCache; | ||||
|     @Nullable private final SearchingChangeCacheImpl changeCache; | ||||
|     private final ProjectControl.GenericFactory projectControlFactory; | ||||
|     private final ChangeNotes.Factory changeNotesFactory; | ||||
|     private final TransferConfig transferConfig; | ||||
| @@ -225,7 +226,7 @@ class InProcessProtocol extends TestProtocol<Context> { | ||||
|         Provider<ReviewDb> dbProvider, | ||||
|         Provider<CurrentUser> userProvider, | ||||
|         TagCache tagCache, | ||||
|         SearchingChangeCacheImpl changeCache, | ||||
|         @Nullable SearchingChangeCacheImpl changeCache, | ||||
|         ProjectControl.GenericFactory projectControlFactory, | ||||
|         ChangeNotes.Factory changeNotesFactory, | ||||
|         TransferConfig transferConfig, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Jonathan Nieder
					Jonathan Nieder