Update to JGit 4.0.0.201505191015-rc1.19-g1773002

Use try-with-resources to handle clean upreaders and walk
instances that now use close() instead of release().

Change-Id: I884d87715bdd920f4e9ef82864d5b962a5b3b065
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/ArchiveServlet.java b/gitiles-servlet/src/main/java/com/google/gitiles/ArchiveServlet.java
index dbbb28f..851723f 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/ArchiveServlet.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/ArchiveServlet.java
@@ -79,8 +79,7 @@
   }
 
   private ObjectId getTree(GitilesView view, Repository repo, Revision rev) throws IOException {
-    RevWalk rw = new RevWalk(repo);
-    try {
+    try (RevWalk rw = new RevWalk(repo)) {
       RevTree tree = rw.parseTree(rev.getId());
       if (Strings.isNullOrEmpty(view.getPathPart())) {
         return tree;
@@ -92,8 +91,6 @@
       return tw.getObjectId(0);
     } catch (IncorrectObjectTypeException e) {
       return ObjectId.zeroId();
-    } finally {
-      rw.release();
     }
   }
 
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/CommitData.java b/gitiles-servlet/src/main/java/com/google/gitiles/CommitData.java
index 107f1e1..f0352ac 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/CommitData.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/CommitData.java
@@ -119,11 +119,8 @@
         result.sha = c.copy();
       }
       if (fs.contains(Field.ABBREV_SHA)) {
-        ObjectReader reader = repo.getObjectDatabase().newReader();
-        try {
+        try (ObjectReader reader = repo.getObjectDatabase().newReader()) {
           result.abbrev = reader.abbreviate(c);
-        } finally {
-          reader.release();
         }
       }
       if (fs.contains(Field.URL)) {
@@ -245,14 +242,11 @@
       }
       AbstractTreeIterator newTree = getTreeIterator(commit);
 
-      DiffFormatter diff = new DiffFormatter(NullOutputStream.INSTANCE);
-      try {
+      try (DiffFormatter diff = new DiffFormatter(NullOutputStream.INSTANCE)) {
         diff.setRepository(repo);
         diff.setDetectRenames(true);
         result.entries = diff.scan(oldTree, newTree);
         return result;
-      } finally {
-        diff.release();
       }
     }
   }
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/DiffServlet.java b/gitiles-servlet/src/main/java/com/google/gitiles/DiffServlet.java
index 3e81703..788eb07 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/DiffServlet.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/DiffServlet.java
@@ -62,14 +62,12 @@
     GitilesView view = ViewFilter.getView(req);
     Repository repo = ServletUtils.getRepository(req);
 
-    RevWalk walk = new RevWalk(repo);
-    TreeWalk tw = null;
-    try {
+    try (RevWalk walk = new RevWalk(repo);
+        TreeWalk tw = newTreeWalk(walk, view)) {
       boolean showCommit, isFile;
       AbstractTreeIterator oldTree;
       AbstractTreeIterator newTree;
       try {
-        tw = newTreeWalk(walk, view);
         if (tw == null && !view.getPathPart().isEmpty()) {
           res.setStatus(SC_NOT_FOUND);
           return;
@@ -108,15 +106,10 @@
       }
 
       setCacheHeaders(res);
-      try (OutputStream out = startRenderStreamingHtml(req, res, "gitiles.diffDetail", data)) {
-        DiffFormatter diff = new HtmlDiffFormatter(renderer, view, out);
+      try (OutputStream out = startRenderStreamingHtml(req, res, "gitiles.diffDetail", data);
+        DiffFormatter diff = new HtmlDiffFormatter(renderer, view, out)) {
         formatDiff(repo, oldTree, newTree, view.getPathPart(), diff);
       }
-    } finally {
-      if (tw != null) {
-        tw.release();
-      }
-      walk.release();
     }
   }
 
@@ -126,8 +119,7 @@
     GitilesView view = ViewFilter.getView(req);
     Repository repo = ServletUtils.getRepository(req);
 
-    RevWalk walk = new RevWalk(repo);
-    try {
+    try (RevWalk walk = new RevWalk(repo)) {
       AbstractTreeIterator oldTree;
       AbstractTreeIterator newTree;
       try {
@@ -139,11 +131,10 @@
       }
 
       try (Writer writer = startRenderText(req, res);
-          OutputStream out = BaseEncoding.base64().encodingStream(writer)) {
-        formatDiff(repo, oldTree, newTree, view.getPathPart(), new DiffFormatter(out));
+          OutputStream out = BaseEncoding.base64().encodingStream(writer);
+          DiffFormatter diff = new DiffFormatter(out)) {
+        formatDiff(repo, oldTree, newTree, view.getPathPart(), diff);
       }
-    } finally {
-      walk.release();
     }
   }
 
@@ -173,16 +164,12 @@
 
   private static void formatDiff(Repository repo, AbstractTreeIterator oldTree,
       AbstractTreeIterator newTree, String path, DiffFormatter diff) throws IOException {
-    try {
-      if (!path.isEmpty()) {
-        diff.setPathFilter(PathFilter.create(path));
-      }
-      diff.setRepository(repo);
-      diff.setDetectRenames(true);
-      diff.format(oldTree, newTree);
-    } finally {
-      diff.release();
+    if (!path.isEmpty()) {
+      diff.setPathFilter(PathFilter.create(path));
     }
+    diff.setRepository(repo);
+    diff.setDetectRenames(true);
+    diff.format(oldTree, newTree);
   }
 
   private static AbstractTreeIterator getTreeIterator(RevWalk walk, ObjectId id)
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/LogServlet.java b/gitiles-servlet/src/main/java/com/google/gitiles/LogServlet.java
index 48215c6..e1594fc 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/LogServlet.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/LogServlet.java
@@ -130,7 +130,7 @@
       res.setStatus(SC_INTERNAL_SERVER_ERROR);
       return;
     } finally {
-      paginator.getWalk().release();
+      paginator.getWalk().close();
     }
   }
 
@@ -161,7 +161,7 @@
       }
       renderJson(req, res, result, new TypeToken<Map<String, Object>>() {}.getType());
     } finally {
-      paginator.getWalk().release();
+      paginator.getWalk().close();
     }
   }
 
@@ -174,14 +174,11 @@
     if (headRef == null) {
       return null;
     }
-    RevWalk walk = new RevWalk(repo);
-    try {
+    try (RevWalk walk = new RevWalk(repo)) {
       return GitilesView.log()
         .copyFrom(view)
         .setRevision(Revision.peel(Constants.HEAD, walk.parseAny(headRef.getObjectId()), walk))
         .build();
-    } finally {
-      walk.release();
     }
   }
 
@@ -260,7 +257,7 @@
     try {
       start = getStart(view.getParameters(), walk.getObjectReader());
     } catch (IOException e) {
-      walk.release();
+      walk.close();
       throw e;
     }
     if (start == null) {
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/PathServlet.java b/gitiles-servlet/src/main/java/com/google/gitiles/PathServlet.java
index 7e9df71..d08062f 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/PathServlet.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/PathServlet.java
@@ -125,10 +125,8 @@
     GitilesView view = ViewFilter.getView(req);
     Repository repo = ServletUtils.getRepository(req);
 
-    RevWalk rw = new RevWalk(repo);
-    WalkResult wr = null;
-    try {
-      wr = WalkResult.forPath(rw, view);
+    try (RevWalk rw = new RevWalk(repo);
+        WalkResult wr = WalkResult.forPath(rw, view)) {
       if (wr == null) {
         res.setStatus(SC_NOT_FOUND);
         return;
@@ -154,11 +152,6 @@
       }
     } catch (LargeObjectException e) {
       res.setStatus(SC_INTERNAL_SERVER_ERROR);
-    } finally {
-      if (wr != null) {
-        wr.release();
-      }
-      rw.release();
     }
   }
 
@@ -167,10 +160,8 @@
     GitilesView view = ViewFilter.getView(req);
     Repository repo = ServletUtils.getRepository(req);
 
-    RevWalk rw = new RevWalk(repo);
-    WalkResult wr = null;
-    try {
-      wr = WalkResult.forPath(rw, view);
+    try (RevWalk rw = new RevWalk(repo);
+        WalkResult wr = WalkResult.forPath(rw, view)) {
       if (wr == null) {
         res.setStatus(SC_NOT_FOUND);
         return;
@@ -195,11 +186,6 @@
       }
     } catch (LargeObjectException e) {
       res.setStatus(SC_INTERNAL_SERVER_ERROR);
-    } finally {
-      if (wr != null) {
-        wr.release();
-      }
-      rw.release();
     }
   }
 
@@ -248,10 +234,8 @@
     GitilesView view = ViewFilter.getView(req);
     Repository repo = ServletUtils.getRepository(req);
 
-    RevWalk rw = new RevWalk(repo);
-    WalkResult wr = null;
-    try {
-      wr = WalkResult.forPath(rw, view);
+    try (RevWalk rw = new RevWalk(repo);
+        WalkResult wr = WalkResult.forPath(rw, view)) {
       if (wr == null) {
         res.setStatus(SC_NOT_FOUND);
         return;
@@ -266,11 +250,6 @@
       }
     } catch (LargeObjectException e) {
       res.setStatus(SC_INTERNAL_SERVER_ERROR);
-    } finally {
-      if (wr != null) {
-        wr.release();
-      }
-      rw.release();
     }
   }
 
@@ -356,7 +335,7 @@
    * Unlike {@link TreeWalk} itself, supports positioning at the root tree.
    * Includes information to help the auto-dive routine as well.
    */
-  private static class WalkResult {
+  private static class WalkResult implements AutoCloseable {
     private static WalkResult forPath(RevWalk rw, GitilesView view) throws IOException {
       RevTree root = getRoot(view, rw);
       String path = view.getPathPart();
@@ -385,7 +364,7 @@
       } catch (IOException | RuntimeException e) {
         // Fallthrough.
       }
-      tw.release();
+      tw.close();
       return null;
     }
 
@@ -410,8 +389,9 @@
       return tw.getObjectReader();
     }
 
-    private void release() {
-      tw.release();
+    @Override
+    public void close() {
+      tw.close();
     }
   }
 
@@ -534,12 +514,13 @@
   private void showGitlink(HttpServletRequest req, HttpServletResponse res, WalkResult wr)
       throws IOException {
     GitilesView view = ViewFilter.getView(req);
-    SubmoduleWalk sw = SubmoduleWalk.forPath(ServletUtils.getRepository(req), wr.root,
-        view.getPathPart());
-
     String modulesUrl;
     String remoteUrl = null;
-    try {
+
+    try (SubmoduleWalk sw = SubmoduleWalk.forPath(
+          ServletUtils.getRepository(req),
+          wr.root,
+          view.getPathPart())) {
       modulesUrl = sw.getModulesUrl();
       if (modulesUrl != null && (modulesUrl.startsWith("./") || modulesUrl.startsWith("../"))) {
         String moduleRepo = PathUtil.simplifyPathUpToRoot(modulesUrl, view.getRepositoryName());
@@ -551,8 +532,6 @@
       }
     } catch (ConfigInvalidException e) {
       throw new IOException(e);
-    } finally {
-      sw.release();
     }
 
     Map<String, Object> data = Maps.newHashMap();
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/RefServlet.java b/gitiles-servlet/src/main/java/com/google/gitiles/RefServlet.java
index c9c3b57..b5a0636 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/RefServlet.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/RefServlet.java
@@ -65,12 +65,9 @@
       res.setStatus(SC_NOT_FOUND);
       return;
     }
-    RevWalk walk = new RevWalk(ServletUtils.getRepository(req));
     List<Map<String, Object>> tags;
-    try {
+    try (RevWalk walk = new RevWalk(ServletUtils.getRepository(req))) {
       tags = getTagsSoyData(req, timeCache, walk, 0);
-    } finally {
-      walk.release();
     }
     renderHtml(req, res, "gitiles.refsDetail",
         ImmutableMap.of("branches", getBranchesSoyData(req, 0), "tags", tags));
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 46ab655..2965923 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/RepositoryIndexServlet.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/RepositoryIndexServlet.java
@@ -66,9 +66,8 @@
     GitilesAccess access = getAccess(req);
     RepositoryDescription desc = access.getRepositoryDescription();
 
-    RevWalk walk = new RevWalk(repo);
-    Paginator paginator = null;
-    try {
+    try (RevWalk walk = new RevWalk(repo)) {
+      Paginator paginator = null;
       Map<String, Object> data = Maps.newHashMapWithExpectedSize(7);
       List<Map<String, Object>> tags = RefServlet.getTagsSoyData(req, timeCache, walk, REF_LIMIT);
       ObjectId headId = repo.resolve(Constants.HEAD);
@@ -117,8 +116,6 @@
       } else {
         renderHtml(req, res, "gitiles.repositoryIndex", data);
       }
-    } finally {
-      walk.release();
     }
   }
 
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/RevisionParser.java b/gitiles-servlet/src/main/java/com/google/gitiles/RevisionParser.java
index 3e3448e..ab89b1f 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/RevisionParser.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/RevisionParser.java
@@ -109,8 +109,7 @@
     if (path.startsWith("/")) {
       path = path.substring(1);
     }
-    RevWalk walk = new RevWalk(repo);
-    try {
+    try (RevWalk walk = new RevWalk(repo)) {
       Revision oldRevision = null;
 
       StringBuilder b = new StringBuilder();
@@ -194,8 +193,6 @@
         first = false;
       }
       return null;
-    } finally {
-      walk.release();
     }
   }
 
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/RevisionServlet.java b/gitiles-servlet/src/main/java/com/google/gitiles/RevisionServlet.java
index c8336c7..9887195 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/RevisionServlet.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/RevisionServlet.java
@@ -80,8 +80,7 @@
     GitilesAccess access = getAccess(req);
     Config cfg = getAccess(req).getConfig();
 
-    RevWalk walk = new RevWalk(repo);
-    try {
+    try (RevWalk walk = new RevWalk(repo)) {
       DateFormatter df = new DateFormatter(access, Format.DEFAULT);
       List<RevObject> objects = listObjects(walk, view.getRevision());
       List<Map<String, ?>> soyObjects = Lists.newArrayListWithCapacity(objects.size());
@@ -142,8 +141,6 @@
           "objects", soyObjects,
           "hasBlob", hasBlob,
           "hasReadme", hasReadme));
-    } finally {
-      walk.release();
     }
   }
 
@@ -151,8 +148,7 @@
   protected void doGetText(HttpServletRequest req, HttpServletResponse res) throws IOException {
     GitilesView view = ViewFilter.getView(req);
     Repository repo = ServletUtils.getRepository(req);
-    ObjectReader reader = repo.newObjectReader();
-    try {
+    try (ObjectReader reader = repo.newObjectReader()) {
         ObjectLoader loader = reader.open(view.getRevision().getId());
         if (loader.getType() != OBJ_COMMIT) {
           res.setStatus(SC_NOT_FOUND);
@@ -163,8 +159,6 @@
             loader.copyTo(out);
           }
         }
-    } finally {
-      reader.release();
     }
   }
 
@@ -173,8 +167,7 @@
     GitilesView view = ViewFilter.getView(req);
     Repository repo = ServletUtils.getRepository(req);
 
-    RevWalk walk = new RevWalk(repo);
-    try {
+    try (RevWalk walk = new RevWalk(repo)) {
       DateFormatter df = new DateFormatter(getAccess(req), Format.DEFAULT);
       RevObject obj = walk.parseAny(view.getRevision().getId());
       switch (obj.getType()) {
@@ -189,8 +182,6 @@
           res.setStatus(SC_NOT_FOUND);
           break;
       }
-    } finally {
-      walk.release();
     }
   }
 
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/blame/BlameCacheImpl.java b/gitiles-servlet/src/main/java/com/google/gitiles/blame/BlameCacheImpl.java
index b41e000..e921672 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/blame/BlameCacheImpl.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/blame/BlameCacheImpl.java
@@ -133,8 +133,7 @@
   public ObjectId findLastCommit(Repository repo, ObjectId commitId, String path)
       throws IOException {
     // Default implementation does no caching.
-    RevWalk rw = new RevWalk(repo);
-    try {
+    try (RevWalk rw = new RevWalk(repo)) {
       rw.markStart(rw.parseCommit(commitId));
       rw.setRewriteParents(false);
       // Don't use rename detection, even though BlameGenerator does. It is not
@@ -144,20 +143,13 @@
           PathFilterGroup.createFromStrings(path),
           TreeFilter.ANY_DIFF));
       return rw.next();
-    } finally {
-      rw.release();
     }
   }
 
   public static List<Region> loadBlame(Key key) throws IOException {
-    try {
-      BlameGenerator gen = new BlameGenerator(key.repo, key.path);
-      try {
-        gen.push(null, key.commitId);
-        return loadRegions(gen);
-      } finally {
-        gen.release();
-      }
+    try (BlameGenerator gen = new BlameGenerator(key.repo, key.path)) {
+      gen.push(null, key.commitId);
+      return loadRegions(gen);
     } finally {
       key.repo = null;
     }
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/blame/BlameServlet.java b/gitiles-servlet/src/main/java/com/google/gitiles/blame/BlameServlet.java
index 10867e7..c8ba7be 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/blame/BlameServlet.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/blame/BlameServlet.java
@@ -74,8 +74,7 @@
     GitilesView view = ViewFilter.getView(req);
     Repository repo = ServletUtils.getRepository(req);
 
-    RevWalk rw = new RevWalk(repo);
-    try {
+    try (RevWalk rw = new RevWalk(repo)) {
       GitilesAccess access = getAccess(req);
       RegionResult result = getRegions(view, access, repo, rw, res);
       if (result == null) {
@@ -98,8 +97,6 @@
             "breadcrumbs", view.getBreadcrumbs(),
             "data", blobData));
       }
-    } finally {
-      rw.release();
     }
   }
 
@@ -108,8 +105,7 @@
     GitilesView view = ViewFilter.getView(req);
     Repository repo = ServletUtils.getRepository(req);
 
-    RevWalk rw = new RevWalk(repo);
-    try {
+    try (RevWalk rw = new RevWalk(repo)) {
       RegionResult result = getRegions(view, getAccess(req), repo, rw, res);
       if (result == null) {
         return;
@@ -124,8 +120,6 @@
       }
       renderJson(req, res, ImmutableMap.of("regions", result.regions),
           new TypeToken<Map<String, List<Region>>>() {}.getType());
-    } finally {
-      rw.release();
     }
   }
 
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/doc/DocServlet.java b/gitiles-servlet/src/main/java/com/google/gitiles/doc/DocServlet.java
index d4ae488..1f96847 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/doc/DocServlet.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/doc/DocServlet.java
@@ -84,8 +84,7 @@
 
     GitilesView view = ViewFilter.getView(req);
     Repository repo = ServletUtils.getRepository(req);
-    RevWalk rw = new RevWalk(repo);
-    try {
+    try (RevWalk rw = new RevWalk(repo)) {
       String path = view.getPathPart();
       RevTree root;
       try {
@@ -139,8 +138,6 @@
 
       res.setHeader(HttpHeaders.ETAG, curEtag);
       showDoc(req, res, view, cfg, img, nav, doc);
-    } finally {
-      rw.release();
     }
   }
 
diff --git a/gitiles-servlet/src/test/java/com/google/gitiles/PaginatorTest.java b/gitiles-servlet/src/test/java/com/google/gitiles/PaginatorTest.java
index 2491107..e8af92e 100644
--- a/gitiles-servlet/src/test/java/com/google/gitiles/PaginatorTest.java
+++ b/gitiles-servlet/src/test/java/com/google/gitiles/PaginatorTest.java
@@ -50,7 +50,7 @@
 
   @After
   public void tearDown() throws Exception {
-    walk.release();
+    walk.close();
   }
 
   @Test
diff --git a/gitiles-servlet/src/test/java/com/google/gitiles/RefServletTest.java b/gitiles-servlet/src/test/java/com/google/gitiles/RefServletTest.java
index 4e4d603..467a65e 100644
--- a/gitiles-servlet/src/test/java/com/google/gitiles/RefServletTest.java
+++ b/gitiles-servlet/src/test/java/com/google/gitiles/RefServletTest.java
@@ -364,12 +364,9 @@
   }
 
   private List<?> buildTagsSoyData() throws Exception {
-    RevWalk rw = new RevWalk(repo.getRepository());
-    try {
+    try (RevWalk rw = new RevWalk(repo.getRepository())) {
       return RefServlet.getTagsSoyData(buildSoyRequest(),
           new TimeCache(TimeCache.defaultBuilder()), rw, Integer.MAX_VALUE);
-    } finally {
-      rw.release();
     }
   }
 
diff --git a/gitiles-servlet/src/test/java/com/google/gitiles/TimeCacheTest.java b/gitiles-servlet/src/test/java/com/google/gitiles/TimeCacheTest.java
index 6481101..8317363 100644
--- a/gitiles-servlet/src/test/java/com/google/gitiles/TimeCacheTest.java
+++ b/gitiles-servlet/src/test/java/com/google/gitiles/TimeCacheTest.java
@@ -116,13 +116,10 @@
     builder.setObjectId(commit);
     builder.setTag("tag");
     builder.setMessage("");
-    ObjectInserter ins = repo.getRepository().newObjectInserter();
     ObjectId id;
-    try {
+    try (ObjectInserter ins = repo.getRepository().newObjectInserter()) {
       id = ins.insert(builder);
       ins.flush();
-    } finally {
-      ins.release();
     }
     assertEquals(start + 1, getTime(commit));
     assertEquals(start + 1, getTime(id));
@@ -139,13 +136,10 @@
     builder.setObjectId(tag);
     builder.setTag("tagtag");
     builder.setMessage("");
-    ObjectInserter ins = repo.getRepository().newObjectInserter();
     ObjectId tagTagId;
-    try {
+    try (ObjectInserter ins = repo.getRepository().newObjectInserter()) {
       tagTagId = ins.insert(builder);
       ins.flush();
-    } finally {
-      ins.release();
     }
     assertEquals(start + 1, getTime(commit));
     assertEquals(start + 2, getTime(tag));
diff --git a/lib/jgit/BUCK b/lib/jgit/BUCK
index ae8ae06..3df8752 100644
--- a/lib/jgit/BUCK
+++ b/lib/jgit/BUCK
@@ -1,10 +1,10 @@
-REPO = MAVEN_CENTRAL
-VERS = '3.6.0.201412230720-r'
+REPO = GERRIT
+VERS = '4.0.0.201505191015-rc1.19-g1773002'
 
 maven_jar(
   name = 'jgit',
   id = 'org.eclipse.jgit:org.eclipse.jgit:' + VERS,
-  sha1 = 'b005b69d9f5b4dba636a95403d5cb62bad5c486d',
+  sha1 = '4db24b39dab8dc0e889807383728032945f461be',
   repository = REPO,
   unsign = True,
   deps = [':ewah'],
@@ -18,7 +18,7 @@
 maven_jar(
   name = 'jgit-servlet',
   id = 'org.eclipse.jgit:org.eclipse.jgit.http.server:' + VERS,
-  sha1 = '92cdf015b62c8a4f8fc1f6fd8b1835931bd4b4d6',
+  sha1 = '7bfdbddea56a87f3f2687ae6abf2c5bdae649f0c',
   repository = REPO,
   deps = [':jgit'],
   unsign = True,
@@ -41,7 +41,7 @@
 maven_jar(
   name = 'jgit-archive_library',
   id = 'org.eclipse.jgit:org.eclipse.jgit.archive:' + VERS,
-  sha1 = '359c1f666e4bdc2db795b6c60a7635f6be929a66',
+  sha1 = '08fce6b89f6d1e78f99869d542d70899f3be9c9f',
   repository = REPO,
   deps = [':jgit'],
   unsign = True,
@@ -54,7 +54,7 @@
 maven_jar(
   name = 'junit',
   id = 'org.eclipse.jgit:org.eclipse.jgit.junit:' + VERS,
-  sha1 = 'cb029dba3fafb329078904028db171d9c460ada8',
+  sha1 = 'a54c16076e6cbdb9113565a82cffa5f268ae8e3b',
   repository = REPO,
   unsign = True,
   deps = [':jgit'],