Fix GWT UI AddFileBox to provide path suggestions continuously

- How to reproduce the bug?
  In ChangeScreen, click 'Edit', then 'Add...'. Type in some text, you
  will get some path suggestions. Delete all the text you've typed in.
  There will be no suggestion any more until the page is reloaded.

- Why does this happen?
  The UI will continue create new query when the text box is focused
  and the 'query' is null in RemoteSuggestOracle. When the text box is
  cleared, it will result in a NullPointerException in
  RESTApi.addParameter(String, String) when it calls
  URL.encodeQueryString as the request.getQuery() is null. Once this
  exception happens, onSuggestionReady will not be called and 'query'
  field in RemoteSuggestOracle will not be reset to null. That's why
  the UI will not try new Request until the page is reloaded.

  This problem may be related to GWT 2.8 upgrade. It started behaving
  differently after the upgrade.

- Solution
  Don't add the query to the request if it is null. This solution will
  not affect ReviewerSuggestOracle as commit [1], which was revert by
  commit [2].

[1] https://gerrit-review.googlesource.com/#/c/97611/
[2] https://gerrit-review.googlesource.com/#/c/97731/

Bug: Issue 5365
Change-Id: Ie64bdf6384c022ec2be943ed9d67b1a1f3cee170
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/PathSuggestOracle.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/PathSuggestOracle.java
index 8e51ea7..3b96a12 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/PathSuggestOracle.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/PathSuggestOracle.java
@@ -17,6 +17,7 @@
 import com.google.gerrit.client.changes.ChangeApi;
 import com.google.gerrit.client.info.ChangeInfo.RevisionInfo;
 import com.google.gerrit.client.rpc.Natives;
+import com.google.gerrit.client.rpc.RestApi;
 import com.google.gerrit.reviewdb.client.Change;
 import com.google.gwt.core.client.JsArrayString;
 import com.google.gwt.user.client.rpc.AsyncCallback;
@@ -37,10 +38,11 @@
 
   @Override
   protected void onRequestSuggestions(final Request req, final Callback cb) {
-    ChangeApi.revision(changeId.get(), revision.name())
-        .view("files")
-        .addParameter("q", req.getQuery())
-        .background()
+    RestApi api = ChangeApi.revision(changeId.get(), revision.name()).view("files");
+    if (req.getQuery() != null) {
+      api.addParameter("q", req.getQuery() == null ? "" : req.getQuery());
+    }
+    api.background()
         .get(
             new AsyncCallback<JsArrayString>() {
               @Override