summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Ostrovsky <david@ostrovsky.org>2016-02-09 08:14:45 +0100
committerDavid Pursehouse <david.pursehouse@sonymobile.com>2016-02-10 00:23:09 +0000
commitc844bc5c86ea128c672b8ed395aceaaec913cee5 (patch)
tree911446673d375ffd9ad3ba4be752d3dd2d122093
parentf679bc892965fe61eff07c85aab8fed81ba263e5 (diff)
EqualsFilePredicate: Make it work in project watches
Secondary index underwent quite some evolution, by adding new fields or turning search predicates that (uncorrectly) used database to produce matches to use secondary index. When new index version is added, the previous index version must still be supported because of online reindexing feature. On very big site, reindexing may take hours, clearly such a long offline time is non acceptable, that why online reindexing feature was invented. To make online reindexing work, schema version must be fetched to route the current search predicate to use old (legacy) or new field. For that IndexCollection is accessed and the current schema version is read. It seems that not the correct instance of IndexCollection is "seen" from the HTTPD guice module. As the consequence we are getting a NPE when file:foo predicate is used in add project watches feature. Use the provider instead to rectify the problem. Test Plan: - Add "file:foo" predicate to project watches Confirm that the new watch is created and no NPE is thrown. Change-Id: I750be217a34cdf97b71e726bea93b3c34ca0ceb0
-rw-r--r--gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/account/AccountServiceImpl.java6
1 files changed, 3 insertions, 3 deletions
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/account/AccountServiceImpl.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/account/AccountServiceImpl.java
index 0da66bfe26..63ec0754d6 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/account/AccountServiceImpl.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/account/AccountServiceImpl.java
@@ -55,7 +55,7 @@ class AccountServiceImpl extends BaseServiceImplementation implements
private final Provider<IdentifiedUser> currentUser;
private final ProjectControl.Factory projectControlFactory;
private final AgreementInfoFactory.Factory agreementInfoFactory;
- private final ChangeQueryBuilder queryBuilder;
+ private final Provider<ChangeQueryBuilder> queryBuilder;
private final SetDiffPreferences setDiff;
@Inject
@@ -63,7 +63,7 @@ class AccountServiceImpl extends BaseServiceImplementation implements
final Provider<IdentifiedUser> identifiedUser,
final ProjectControl.Factory projectControlFactory,
final AgreementInfoFactory.Factory agreementInfoFactory,
- final ChangeQueryBuilder queryBuilder,
+ final Provider<ChangeQueryBuilder> queryBuilder,
SetDiffPreferences setDiff) {
super(schema, identifiedUser);
this.currentUser = identifiedUser;
@@ -147,7 +147,7 @@ class AccountServiceImpl extends BaseServiceImplementation implements
if (filter != null) {
try {
- queryBuilder.parse(filter);
+ queryBuilder.get().parse(filter);
} catch (QueryParseException badFilter) {
throw new InvalidQueryException(badFilter.getMessage(), filter);
}