Fix NPE when loading IntraLineDiff from disk cache

We failed to populate the list member, which resulted in the
IntraLineDiff crashing with NPE when it was loaded from the disk
cache after a graceful server restart.

Change-Id: Iff5a49d8de26df6c89cb56e1086d35838e71e5b4
Signed-off-by: Shawn O. Pearce <sop@google.com>
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/patch/IntraLineDiff.java b/gerrit-server/src/main/java/com/google/gerrit/server/patch/IntraLineDiff.java
index f8f339e..d694724 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/patch/IntraLineDiff.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/patch/IntraLineDiff.java
@@ -33,10 +33,10 @@
 public class IntraLineDiff implements Serializable {
   static final long serialVersionUID = IntraLineDiffKey.serialVersionUID;
 
-  private List<Edit> edits;
+  private transient List<Edit> edits;
 
   IntraLineDiff(List<Edit> edits) {
-    this.edits = edits;
+    this.edits = Collections.unmodifiableList(edits);
   }
 
   public List<Edit> getEdits() {
@@ -69,11 +69,13 @@
       int innerCount = readVarInt32(in);
       if (0 < innerCount) {
         Edit[] inner = new Edit[innerCount];
-        for (int j = 0; j < innerCount; j++)
+        for (int j = 0; j < innerCount; j++) {
           inner[j] = readEdit(in);
+        }
         editArray[i] = new ReplaceEdit(editArray[i], toList(inner));
       }
     }
+    edits = toList(editArray);
   }
 
   private static void writeEdit(OutputStream out, Edit e) throws IOException {
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/patch/IntraLineDiffKey.java b/gerrit-server/src/main/java/com/google/gerrit/server/patch/IntraLineDiffKey.java
index 899dda5..61004dd 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/patch/IntraLineDiffKey.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/patch/IntraLineDiffKey.java
@@ -27,7 +27,7 @@
 import java.util.List;
 
 public class IntraLineDiffKey implements Serializable {
-  static final long serialVersionUID = 1L;
+  static final long serialVersionUID = 2L;
 
   private transient ObjectId aId;
   private transient ObjectId bId;