SideBySide2: Allow missing diff_header in JSON reply
If the files are identical diff_header may be omitted by the
server. Gracefully handle this in the UI and do not display the
diffHeaderRow.
Change-Id: I2d8ad100ab212dee40548ab4b26a04e6bc76b489
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/DiffTable.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/DiffTable.java
index fc12617..5765b22 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/DiffTable.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/DiffTable.java
@@ -143,20 +143,27 @@
patchSetSelectBoxB.setUpPatchSetNav(list, info.meta_b());
JsArrayString hdr = info.diff_header();
- StringBuilder b = new StringBuilder();
- for (int i = 1; i < hdr.length(); i++) {
- String s = hdr.get(i);
- if (s.startsWith("diff --git ")
- || s.startsWith("index ")
- || s.startsWith("+++ ")
- || s.startsWith("--- ")) {
- continue;
+ if (hdr != null) {
+ StringBuilder b = new StringBuilder();
+ for (int i = 1; i < hdr.length(); i++) {
+ String s = hdr.get(i);
+ if (s.startsWith("diff --git ")
+ || s.startsWith("index ")
+ || s.startsWith("+++ ")
+ || s.startsWith("--- ")) {
+ continue;
+ }
+ b.append(s).append('\n');
}
- b.append(s).append('\n');
+
+ String hdrTxt = b.toString().trim();
+ header = !hdrTxt.isEmpty();
+ diffHeaderText.setInnerText(hdrTxt);
+ UIObject.setVisible(diffHeaderRow, header);
+ } else {
+ header = false;
+ UIObject.setVisible(diffHeaderRow, false);
}
- header = b.length() > 0;
- diffHeaderText.setInnerText(b.toString().trim());
- UIObject.setVisible(diffHeaderRow, header);
}
void refresh() {