QueryChanges: Skip adding _moreChanges when list is empty

ChangeJson can omit results if there is an exception during formating.
In this case, we omit the result from the output and can spare adding
_moreChanges as there are none. This prevents an
IndexOutOfBoundsException when the formatted list is empty.

Change-Id: I6665a4e1da3918312a27ef1be52ba5aad3dba568
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/QueryChanges.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/QueryChanges.java
index b288bd5..65de137 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/QueryChanges.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/QueryChanges.java
@@ -15,6 +15,7 @@
 package com.google.gerrit.server.query.change;
 
 import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Iterables;
 import com.google.common.collect.Sets;
 import com.google.gerrit.extensions.client.ListChangesOption;
 import com.google.gerrit.extensions.common.ChangeInfo;
@@ -143,8 +144,8 @@
 
     for (int n = 0; n < cnt; n++) {
       List<ChangeInfo> info = res.get(n);
-      if (results.get(n).more()) {
-        info.get(info.size() - 1)._moreChanges = true;
+      if (results.get(n).more() && !info.isEmpty()) {
+        Iterables.getLast(info)._moreChanges = true;
       }
     }
     return res;