Correctly handle missing entries in repo index shortlog

Change-Id: Id67148f7b0dfb8e756981f8b619b787fff02a90d
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/RepositoryIndexServlet.java b/gitiles-servlet/src/main/java/com/google/gitiles/RepositoryIndexServlet.java
index a0fea72..79f90e9 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/RepositoryIndexServlet.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/RepositoryIndexServlet.java
@@ -18,6 +18,7 @@
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Strings;
+import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Maps;
 
 import org.eclipse.jgit.http.server.ServletUtils;
@@ -69,7 +70,7 @@
       tags = RefServlet.getTags(req, timeCache, walk, REF_LIMIT);
       ObjectId headId = repo.resolve(Constants.HEAD);
       if (headId != null) {
-        RevObject head = walk.parseAny(repo.resolve(Constants.HEAD));
+        RevObject head = walk.parseAny(headId);
         if (head.getType() == Constants.OBJ_COMMIT) {
           walk.reset();
           walk.markStart((RevCommit) head);
@@ -84,6 +85,9 @@
     } finally {
       walk.release();
     }
+    if (!data.containsKey("entries")) {
+      data.put("entries", ImmutableList.of());
+    }
     List<Map<String, String>> branches = RefServlet.getBranches(req, REF_LIMIT);
 
     data.put("cloneUrl", desc.cloneUrl);