Merge "ChangeScreen2: Display 'No Related Changes' if there are none"
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/RelatedChanges.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/RelatedChanges.java
index c4c9e09..2b30ac3 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/RelatedChanges.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/RelatedChanges.java
@@ -97,6 +97,7 @@
 
   @UiField Style style;
   @UiField Element header;
+  @UiField Element none;
   @UiField ScrollPanel scroll;
   @UiField ProgressBar progress;
   @UiField Element error;
@@ -144,10 +145,16 @@
     }
   }
 
-  private void render(String revision, JsArray<ChangeAndCommit> graph) {
-    DisplayCommand cmd = new DisplayCommand(revision, graph);
-    if (cmd.execute()) {
-      Scheduler.get().scheduleIncremental(cmd);
+  private void render(String revision, JsArray<ChangeAndCommit> list) {
+    if (0 < list.length()) {
+      DisplayCommand cmd = new DisplayCommand(revision, list);
+      if (cmd.execute()) {
+        Scheduler.get().scheduleIncremental(cmd);
+      }
+    } else {
+      progress.setVisible(false);
+      UIObject.setVisible(header, false);
+      UIObject.setVisible(none, true);
     }
   }
 
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/RelatedChanges.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/RelatedChanges.ui.xml
index 1fbaff8..0eaa2d8 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/RelatedChanges.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/RelatedChanges.ui.xml
@@ -37,5 +37,8 @@
     <g:ScrollPanel ui:field='scroll' visible='false'/>
     <x:ProgressBar ui:field='progress'/>
     <div ui:field='error' aria-hidden='true' style='display: NONE'/>
+    <div ui:field='none' aria-hidden='true' style='display: NONE'>
+      <ui:msg>No Related Changes</ui:msg>
+    </div>
   </g:HTMLPanel>
 </ui:UiBinder>
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/GetRelated.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/GetRelated.java
index 7f519c9..9c69259 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/change/GetRelated.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/GetRelated.java
@@ -93,7 +93,7 @@
       throws OrmException, IOException {
     Map<Change.Id, Change> changes = allOpenChanges(rsrc);
     Map<PatchSet.Id, PatchSet> patchSets = allPatchSets(changes.keySet());
-    List<ChangeAndCommit> graph = children(rsrc, rw, changes, patchSets);
+    List<ChangeAndCommit> list = children(rsrc, rw, changes, patchSets);
 
     Map<String, PatchSet> commits = Maps.newHashMap();
     for (PatchSet p : patchSets.values()) {
@@ -116,9 +116,18 @@
     for (RevCommit c; (c = rw.next()) != null;) {
       PatchSet p = commits.get(c.name());
       Change g = p != null ? changes.get(p.getId().getParentKey()) : null;
-      graph.add(new ChangeAndCommit(g, p, c));
+      list.add(new ChangeAndCommit(g, p, c));
     }
-    return graph;
+
+    if (list.size() == 1) {
+      ChangeAndCommit r = list.get(0);
+      if (r._changeNumber != null && r._revisionNumber != null
+          && r._changeNumber == rsrc.getChange().getChangeId()
+          && r._revisionNumber == rsrc.getPatchSet().getPatchSetId()) {
+        return Collections.emptyList();
+      }
+    }
+    return list;
   }
 
   private Map<Change.Id, Change> allOpenChanges(RevisionResource rsrc)