Merge branch stable-2.12 into stable-2.13

* stable-2.12:
  Print proper name for QuerySource tasks in show-queue command

Change-Id: I45cd82e26bcd07249d3dc4dede97874fa71c8d6c
diff --git a/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneChangeIndex.java b/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneChangeIndex.java
index 672d12a..2a506ba 100644
--- a/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneChangeIndex.java
+++ b/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneChangeIndex.java
@@ -252,7 +252,7 @@
     if (!Sets.intersection(statuses, CLOSED_STATUSES).isEmpty()) {
       indexes.add(closedIndex);
     }
-    return new QuerySource(indexes, queryBuilder.toQuery(p), opts, getSort());
+    return new QuerySource(indexes, p, opts, getSort());
   }
 
   @Override
@@ -274,14 +274,19 @@
 
   private class QuerySource implements ChangeDataSource {
     private final List<ChangeSubIndex> indexes;
+    private final Predicate<ChangeData> predicate;
     private final Query query;
     private final QueryOptions opts;
     private final Sort sort;
 
-    private QuerySource(List<ChangeSubIndex> indexes, Query query, QueryOptions opts,
-        Sort sort) {
+
+    private QuerySource(List<ChangeSubIndex> indexes,
+        Predicate<ChangeData> predicate, QueryOptions opts, Sort sort)
+        throws QueryParseException {
       this.indexes = indexes;
-      this.query = checkNotNull(query, "null query from Lucene");
+      this.predicate = predicate;
+      this.query = checkNotNull(queryBuilder.toQuery(predicate),
+          "null query from Lucene");
       this.opts = opts;
       this.sort = sort;
     }
@@ -298,7 +303,7 @@
 
     @Override
     public String toString() {
-      return query.toString();
+      return predicate.toString();
     }
 
     @Override
@@ -315,6 +320,11 @@
             public List<Document> call() throws IOException {
               return doRead(fields);
             }
+
+            @Override
+            public String toString() {
+              return predicate.toString();
+            }
           }), fields);
     }