diff --git a/BUCK b/BUCK
index f504e08..786e063 100644
--- a/BUCK
+++ b/BUCK
@@ -1,7 +1,7 @@
 include_defs('//bucklets/gerrit_plugin.bucklet')
 include_defs('//bucklets/maven_jar.bucklet')
 
-JGIT_VERSION = '4.5.0.201609210915-r'
+JGIT_VERSION = '4.6.0.201612231935-r'
 REPO = MAVEN_CENTRAL
 
 gerrit_plugin(
@@ -27,7 +27,7 @@
 maven_jar(
   name = 'jgit-http-apache',
   id = 'org.eclipse.jgit:org.eclipse.jgit.http.apache:' + JGIT_VERSION,
-  sha1 = 'ce43489af3eb68740d2c5c67939fc15e1d87e082',
+  sha1 = '3afcb40dfeb37e59ac5ed3f6d3473026421c258b',
   license = 'jgit',
   repository = REPO,
   unsign = True,
@@ -40,8 +40,8 @@
 maven_jar(
   name = 'jgit-lfs',
   id = 'org.eclipse.jgit:org.eclipse.jgit.lfs:' + JGIT_VERSION,
-  bin_sha1 = 'f6252a849c8dfcf6ea6526b1891986dd7176735c',
-  src_sha1 = '62d5694f2db58ecef0b227d6943bf1ae26536e24',
+  bin_sha1 = 'c23b0013d7adab496b1182fd6e98a6f6ea56a5d2',
+  src_sha1 = '4a05abc18f2f9389628d4aa8ab94db4788a0b827',
   license = 'jgit',
   repository = REPO,
   unsign = True,
@@ -54,8 +54,8 @@
 maven_jar(
   name = 'jgit-lfs-server',
   id = 'org.eclipse.jgit:org.eclipse.jgit.lfs.server:' + JGIT_VERSION,
-  bin_sha1 = 'cdcc6bcc5e9db699301b776af22f3dab1cba348b',
-  src_sha1 = 'fe23815a06a10b11b9ec27e4d244f12c771fc6e4',
+  bin_sha1 = '5a5cbba2416aebf411d01f60c4dc3c49c417eb10',
+  src_sha1 = 'bb777a45f28f22f2595cd3c5b65d7165454f0186',
   license = 'jgit',
   repository = REPO,
   unsign = True,
diff --git a/src/main/java/org/eclipse/jgit/lfs/server/fs/LfsFsContentServlet.java b/src/main/java/org/eclipse/jgit/lfs/server/fs/LfsFsContentServlet.java
index b523795..eb918d6 100644
--- a/src/main/java/org/eclipse/jgit/lfs/server/fs/LfsFsContentServlet.java
+++ b/src/main/java/org/eclipse/jgit/lfs/server/fs/LfsFsContentServlet.java
@@ -27,10 +27,7 @@
 import com.googlesource.gerrit.plugins.lfs.fs.LocalLargeFileRepository;
 
 import org.apache.http.HttpStatus;
-import org.eclipse.jgit.lfs.errors.InvalidLongObjectIdException;
 import org.eclipse.jgit.lfs.lib.AnyLongObjectId;
-import org.eclipse.jgit.lfs.lib.Constants;
-import org.eclipse.jgit.lfs.lib.LongObjectId;
 import org.eclipse.jgit.lfs.server.internal.LfsServerText;
 
 import java.io.IOException;
@@ -109,20 +106,4 @@
     req.getInputStream().setReadListener(
         new ObjectUploadListener(repository, context, req, rsp, id));
   }
-
-  private AnyLongObjectId getObjectToTransfer(HttpServletRequest req,
-      HttpServletResponse rsp) throws IOException {
-    String info = req.getPathInfo();
-    if (info.length() != 1 + Constants.LONG_OBJECT_ID_STRING_LENGTH) {
-      sendError(rsp, HttpStatus.SC_UNPROCESSABLE_ENTITY,
-          MessageFormat.format(LfsServerText.get().invalidPathInfo, info));
-      return null;
-    }
-    try {
-      return LongObjectId.fromString(info.substring(1, 65));
-    } catch (InvalidLongObjectIdException e) {
-      sendError(rsp, HttpStatus.SC_UNPROCESSABLE_ENTITY, e.getMessage());
-      return null;
-    }
-  }
 }
