diff --git a/Documentation/config-options.md b/Documentation/config-options.md
index 4dde8f8..4c74855 100644
--- a/Documentation/config-options.md
+++ b/Documentation/config-options.md
@@ -131,6 +131,7 @@
 | `pack.searchForReuseTimeout` | | &#x20DE; | Search for reuse phase timeout. Expressed as a `Duration`, i.e.: `50sec`. |
 | `pack.singlePack` | `false` | &#x20DE; | Whether all of `refs/*` should be packed in a single pack. |
 | `pack.threads` | `0` (auto-detect number of processors) | &#x2705; | Number of threads to use for delta compression. |
+| `pack.useObjectSizeIndex` | `false` | &#x20DE; | Whether to use the object size index when available. |
 | `pack.waitPreventRacyPack` | `false` | &#x20DE; | Whether we wait before opening a newly written pack to prevent its lastModified timestamp could be racy. |
 | `pack.window` | `10` | &#x2705; | Number of objects to try when looking for a delta base per thread searching for deltas. |
 | `pack.windowMemory` | `0` (unlimited) | &#x2705; | Maximum number of bytes to put into the delta search window. |
diff --git a/WORKSPACE b/WORKSPACE
index 51340cf..ba37f3b 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -102,18 +102,18 @@
     sha1 = "51cf043c87253c9f58b539c9f7e44c8894223850",
 )
 
-SSHD_VERS = "2.15.0"
+SSHD_VERS = "2.16.0"
 
 maven_jar(
     name = "sshd-osgi",
     artifact = "org.apache.sshd:sshd-osgi:" + SSHD_VERS,
-    sha1 = "aa76898fe47eab7da0878dd60e6f3be5631e076c",
+    sha1 = "87cab2aaa6e06c5d48d746e90f0b3635f8c06419",
 )
 
 maven_jar(
     name = "sshd-sftp",
     artifact = "org.apache.sshd:sshd-sftp:" + SSHD_VERS,
-    sha1 = "2e226055ed060c64ed76256a9c45de6d0109eef8",
+    sha1 = "09d9e7024535fb4a3f74367ba7e0a2f5093af638",
 )
 
 JNA_VERS = "5.17.0"
@@ -162,8 +162,8 @@
 
 maven_jar(
     name = "commons-compress",
-    artifact = "org.apache.commons:commons-compress:1.27.1",
-    sha1 = "a19151084758e2fbb6b41eddaa88e7b8ff4e6599",
+    artifact = "org.apache.commons:commons-compress:1.28.0",
+    sha1 = "e482f2c7a88dac3c497e96aa420b6a769f59c8d7",
 )
 
 maven_jar(
@@ -204,28 +204,28 @@
 
 maven_jar(
     name = "mockito",
-    artifact = "org.mockito:mockito-core:5.18.0",
-    sha1 = "ab47dbbf954ffa2501f29000600742098617272d",
+    artifact = "org.mockito:mockito-core:5.19.0",
+    sha1 = "82b320935809e3c8ff92c2007dae5dff88d76f32",
 )
 
 maven_jar(
     name = "assertj-core",
-    artifact = "org.assertj:assertj-core:3.27.3",
-    sha1 = "31f5d58a202bd5df4993fb10fa2cffd610c20d6f",
+    artifact = "org.assertj:assertj-core:3.27.4",
+    sha1 = "65e62575f7e422df6d290dc1cb15f3c97108b2b1",
 )
 
-BYTE_BUDDY_VERSION = "1.17.6"
+BYTE_BUDDY_VERSION = "1.17.7"
 
 maven_jar(
     name = "bytebuddy",
     artifact = "net.bytebuddy:byte-buddy:" + BYTE_BUDDY_VERSION,
-    sha1 = "8c70cbc6950b2ae5291a98d5003e06406d633803",
+    sha1 = "3856bfab61beb23e099a0d6629f2ba8de4b98ace",
 )
 
 maven_jar(
     name = "bytebuddy-agent",
     artifact = "net.bytebuddy:byte-buddy-agent:" + BYTE_BUDDY_VERSION,
-    sha1 = "17b32fd9f57deef02842f7f05abc4ad8127fe34e",
+    sha1 = "fbf3d6d649ed37fc9e9c59480a05be0a26e3c2da",
 )
 
 maven_jar(
@@ -240,66 +240,66 @@
     sha1 = "853ce06c11316b33a8eae5e9095da096a9528b8f",
 )
 
-JETTY_VER = "12.0.23"
+JETTY_VER = "12.1.0"
 
 maven_jar(
     name = "jetty-servlet",
     artifact = "org.eclipse.jetty.ee8:jetty-ee8-servlet:" + JETTY_VER,
-    sha1 = "87eb6b1fc7c6f6f130984288ce0ba311c7ebc48b",
+    sha1 = "881b69b15540215aace32ab7c985abb6e4fe0c25",
 )
 
 maven_jar(
     name = "jetty-nested",
     artifact = "org.eclipse.jetty.ee8:jetty-ee8-nested:" + JETTY_VER,
-    sha1 = "88a49929c83964263ce1350f7ed414abfda6a936",
+    sha1 = "8118cdcdf9cdf163584d47e136e1cee17b547985",
 )
 
 maven_jar(
     name = "jetty-security",
     artifact = "org.eclipse.jetty:jetty-security:" + JETTY_VER,
-    sha1 = "c6e862c78ce45dca1374d157e92eedc4450aa141",
+    sha1 = "5fb2a02cc342fd132e5a358ecbb4479aabf58a3a",
 )
 
 maven_jar(
     name = "jetty-ee8-security",
     artifact = "org.eclipse.jetty.ee8:jetty-ee8-security:" + JETTY_VER,
-    sha1 = "0f7d8c859095af69cb350b72659c5e0efddc80e0",
+    sha1 = "d25c84218ef00b7e54f537acdee3fda8f20be975",
 )
 
 maven_jar(
     name = "jetty-server",
     artifact = "org.eclipse.jetty:jetty-server:" + JETTY_VER,
-    sha1 = "c8618ac7741fd278dba2ff77c3cf5229e2235356",
+    sha1 = "a53a5d0d03aaeab03908ff854cdd5e9ee256efca",
 )
 
 maven_jar(
     name = "jetty-session",
     artifact = "org.eclipse.jetty:jetty-session:" + JETTY_VER,
-    sha1 = "a8fb8b2d7c85a6d7d7fc317cb8c7ecd3b31e5e27",
+    sha1 = "be1be354522861b72fdaade01f798ad7f6ffbac4",
 )
 
 maven_jar(
     name = "jetty-http",
     artifact = "org.eclipse.jetty:jetty-http:" + JETTY_VER,
-    sha1 = "d4d3aa4670df0ec8a9b3abe15e14bf340f7e044e",
+    sha1 = "d74935bc8eb25780453dfd0a2e93c2729b566e79",
 )
 
 maven_jar(
     name = "jetty-io",
     artifact = "org.eclipse.jetty:jetty-io:" + JETTY_VER,
-    sha1 = "a9175176e1ace74311f91d9a5f491efc387b4e90",
+    sha1 = "611910afde7e9a2cfda3cad1ec1466cdba55e444",
 )
 
 maven_jar(
     name = "jetty-util",
     artifact = "org.eclipse.jetty:jetty-util:" + JETTY_VER,
-    sha1 = "aa47d314a3af553d9797ec0a89ab60c0b069fea2",
+    sha1 = "e0d96b47d0289006941757352c6fe7e5d9370c3b",
 )
 
 maven_jar(
     name = "jetty-util-ajax",
     artifact = "org.eclipse.jetty:jetty-util-ajax:" + JETTY_VER,
-    sha1 = "bb9da9974fcb8029ba3538e35ca9efbfe4e19fa8",
+    sha1 = "26c44a954086af8518fcb311c94c5703f1d3093b",
 )
 
 BOUNCYCASTLE_VER = "1.81"
diff --git a/org.eclipse.jgit.http.server/.settings/.api_filters b/org.eclipse.jgit.http.server/.settings/.api_filters
index 3a22bef..4675956 100644
--- a/org.eclipse.jgit.http.server/.settings/.api_filters
+++ b/org.eclipse.jgit.http.server/.settings/.api_filters
@@ -14,6 +14,13 @@
                 <message_argument value="hasChunkedEncodingRequestBug(int[], HttpServletRequest)"/>
             </message_arguments>
         </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="hasChunkedEncodingRequestBug(int[], HttpServletRequest)"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/jgit/http/server/GitFilter.java" type="org.eclipse.jgit.http.server.GitFilter">
         <filter id="337682486">
@@ -54,6 +61,20 @@
                 <message_argument value="addUploadPackFilter(Filter)"/>
             </message_arguments>
         </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="addReceivePackFilter(Filter)"/>
+            </message_arguments>
+        </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="addUploadPackFilter(Filter)"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/jgit/http/server/GitServlet.java" type="org.eclipse.jgit.http.server.GitServlet">
         <filter id="337682486">
@@ -94,6 +115,20 @@
                 <message_argument value="addUploadPackFilter(Filter)"/>
             </message_arguments>
         </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="addReceivePackFilter(Filter)"/>
+            </message_arguments>
+        </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="addUploadPackFilter(Filter)"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/jgit/http/server/GitSmartHttpTools.java" type="org.eclipse.jgit.http.server.GitSmartHttpTools">
         <filter id="338792546">
@@ -187,6 +222,55 @@
                 <message_argument value="sendError(HttpServletRequest, HttpServletResponse, int, String)"/>
             </message_arguments>
         </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="getResponseContentType(HttpServletRequest)"/>
+            </message_arguments>
+        </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="isGitClient(HttpServletRequest)"/>
+            </message_arguments>
+        </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="isInfoRefs(HttpServletRequest)"/>
+            </message_arguments>
+        </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="isReceivePack(HttpServletRequest)"/>
+            </message_arguments>
+        </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="isUploadPack(HttpServletRequest)"/>
+            </message_arguments>
+        </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="sendError(HttpServletRequest, HttpServletResponse, int)"/>
+            </message_arguments>
+        </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="sendError(HttpServletRequest, HttpServletResponse, int, String)"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/jgit/http/server/ReceivePackErrorHandler.java" type="org.eclipse.jgit.http.server.ReceivePackErrorHandler">
         <filter id="403804204">
@@ -208,6 +292,13 @@
                 <message_argument value="receive(HttpServletRequest, HttpServletResponse, ReceivePackErrorHandler.ReceivePackRunnable)"/>
             </message_arguments>
         </filter>
+        <filter id="1209008130">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="receive(HttpServletRequest, HttpServletResponse, ReceivePackErrorHandler.ReceivePackRunnable)"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/jgit/http/server/RepositoryFilter.java" type="org.eclipse.jgit.http.server.RepositoryFilter">
         <filter id="337682486">
@@ -295,6 +386,41 @@
                 <message_argument value="sendPlainText(String, HttpServletRequest, HttpServletResponse)"/>
             </message_arguments>
         </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="consumeRequestBody(HttpServletRequest)"/>
+            </message_arguments>
+        </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="getInputStream(HttpServletRequest)"/>
+            </message_arguments>
+        </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="getRepository(ServletRequest)"/>
+            </message_arguments>
+        </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="send(byte[], HttpServletRequest, HttpServletResponse)"/>
+            </message_arguments>
+        </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="sendPlainText(String, HttpServletRequest, HttpServletResponse)"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/jgit/http/server/UploadPackErrorHandler.java" type="org.eclipse.jgit.http.server.UploadPackErrorHandler">
         <filter id="403804204">
@@ -316,6 +442,13 @@
                 <message_argument value="upload(HttpServletRequest, HttpServletResponse, UploadPackErrorHandler.UploadPackRunnable)"/>
             </message_arguments>
         </filter>
+        <filter id="1209008130">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="upload(HttpServletRequest, HttpServletResponse, UploadPackErrorHandler.UploadPackRunnable)"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/jgit/http/server/glue/ErrorServlet.java" type="org.eclipse.jgit.http.server.glue.ErrorServlet">
         <filter id="337682486">
@@ -440,6 +573,20 @@
                 <message_argument value="with(HttpServlet)"/>
             </message_arguments>
         </filter>
+        <filter id="1209008130">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="through(Filter)"/>
+            </message_arguments>
+        </filter>
+        <filter id="1209008130">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="with(HttpServlet)"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/jgit/http/server/glue/WrappedRequest.java" type="org.eclipse.jgit.http.server.glue.WrappedRequest">
         <filter id="337682486">
@@ -466,6 +613,13 @@
                 <message_argument value="WrappedRequest(HttpServletRequest, String, String)"/>
             </message_arguments>
         </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="WrappedRequest(HttpServletRequest, String, String)"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/jgit/http/server/resolver/AsIsFileService.java" type="org.eclipse.jgit.http.server.resolver.AsIsFileService">
         <filter id="338792546">
@@ -481,6 +635,13 @@
                 <message_argument value="access(HttpServletRequest, Repository)"/>
             </message_arguments>
         </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="access(HttpServletRequest, Repository)"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/jgit/http/server/resolver/DefaultReceivePackFactory.java" type="org.eclipse.jgit.http.server.resolver.DefaultReceivePackFactory">
         <filter id="338792546">
@@ -496,6 +657,13 @@
                 <message_argument value="create(HttpServletRequest, Repository)"/>
             </message_arguments>
         </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="create(HttpServletRequest, Repository)"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/jgit/http/server/resolver/DefaultUploadPackFactory.java" type="org.eclipse.jgit.http.server.resolver.DefaultUploadPackFactory">
         <filter id="338792546">
@@ -511,5 +679,12 @@
                 <message_argument value="create(HttpServletRequest, Repository)"/>
             </message_arguments>
         </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="create(HttpServletRequest, Repository)"/>
+            </message_arguments>
+        </filter>
     </resource>
 </component>
diff --git a/org.eclipse.jgit.junit.http/.settings/.api_filters b/org.eclipse.jgit.junit.http/.settings/.api_filters
index e756a79..f7c1069 100644
--- a/org.eclipse.jgit.junit.http/.settings/.api_filters
+++ b/org.eclipse.jgit.junit.http/.settings/.api_filters
@@ -27,6 +27,20 @@
                 <message_argument value="authBasic(ServletContextHandler, String[])"/>
             </message_arguments>
         </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="addContext(String)"/>
+            </message_arguments>
+        </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="authBasic(ServletContextHandler, String[])"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/jgit/junit/http/HttpTestCase.java" type="org.eclipse.jgit.junit.http.HttpTestCase">
         <filter id="338792546">
@@ -42,6 +56,13 @@
                 <message_argument value="toURIish(ServletContextHandler, String)"/>
             </message_arguments>
         </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="toURIish(ServletContextHandler, String)"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/jgit/junit/http/MockServletConfig.java" type="org.eclipse.jgit.junit.http.MockServletConfig">
         <filter id="338792546">
diff --git a/org.eclipse.jgit.junit.ssh/META-INF/MANIFEST.MF b/org.eclipse.jgit.junit.ssh/META-INF/MANIFEST.MF
index 81d381c..2d2362b 100644
--- a/org.eclipse.jgit.junit.ssh/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.junit.ssh/META-INF/MANIFEST.MF
@@ -9,31 +9,31 @@
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
-Import-Package: org.apache.sshd.common;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.config.keys;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.file.virtualfs;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.helpers;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.io;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.kex;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.keyprovider;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.session;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.signature;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.buffer;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.logging;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.security;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.threads;version="[2.15.0,2.16.0)",
- org.apache.sshd.core;version="[2.15.0,2.16.0)",
- org.apache.sshd.server;version="[2.15.0,2.16.0)",
- org.apache.sshd.server.auth;version="[2.15.0,2.16.0)",
- org.apache.sshd.server.auth.gss;version="[2.15.0,2.16.0)",
- org.apache.sshd.server.auth.keyboard;version="[2.15.0,2.16.0)",
- org.apache.sshd.server.auth.password;version="[2.15.0,2.16.0)",
- org.apache.sshd.server.command;version="[2.15.0,2.16.0)",
- org.apache.sshd.server.session;version="[2.15.0,2.16.0)",
- org.apache.sshd.server.shell;version="[2.15.0,2.16.0)",
- org.apache.sshd.server.subsystem;version="[2.15.0,2.16.0)",
- org.apache.sshd.sftp;version="[2.15.0,2.16.0)",
- org.apache.sshd.sftp.server;version="[2.15.0,2.16.0)",
+Import-Package: org.apache.sshd.common;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.config.keys;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.file.virtualfs;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.helpers;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.io;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.kex;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.keyprovider;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.session;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.signature;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.buffer;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.logging;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.security;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.threads;version="[2.16.0,2.17.0)",
+ org.apache.sshd.core;version="[2.16.0,2.17.0)",
+ org.apache.sshd.server;version="[2.16.0,2.17.0)",
+ org.apache.sshd.server.auth;version="[2.16.0,2.17.0)",
+ org.apache.sshd.server.auth.gss;version="[2.16.0,2.17.0)",
+ org.apache.sshd.server.auth.keyboard;version="[2.16.0,2.17.0)",
+ org.apache.sshd.server.auth.password;version="[2.16.0,2.17.0)",
+ org.apache.sshd.server.command;version="[2.16.0,2.17.0)",
+ org.apache.sshd.server.session;version="[2.16.0,2.17.0)",
+ org.apache.sshd.server.shell;version="[2.16.0,2.17.0)",
+ org.apache.sshd.server.subsystem;version="[2.16.0,2.17.0)",
+ org.apache.sshd.sftp;version="[2.16.0,2.17.0)",
+ org.apache.sshd.sftp.server;version="[2.16.0,2.17.0)",
  org.eclipse.jgit.annotations;version="[7.4.0,7.5.0)",
  org.eclipse.jgit.api;version="[7.4.0,7.5.0)",
  org.eclipse.jgit.api.errors;version="[7.4.0,7.5.0)",
diff --git a/org.eclipse.jgit.lfs.server/.settings/.api_filters b/org.eclipse.jgit.lfs.server/.settings/.api_filters
index 46106ee..2a81240 100644
--- a/org.eclipse.jgit.lfs.server/.settings/.api_filters
+++ b/org.eclipse.jgit.lfs.server/.settings/.api_filters
@@ -69,6 +69,20 @@
                 <message_argument value="sendError(HttpServletResponse, int, String)"/>
             </message_arguments>
         </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="getObjectToTransfer(HttpServletRequest, HttpServletResponse)"/>
+            </message_arguments>
+        </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="sendError(HttpServletResponse, int, String)"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/jgit/lfs/server/fs/ObjectDownloadListener.java" type="org.eclipse.jgit.lfs.server.fs.ObjectDownloadListener">
         <filter id="337682486">
@@ -90,6 +104,13 @@
                 <message_argument value="ObjectDownloadListener(FileLfsRepository, AsyncContext, HttpServletResponse, AnyLongObjectId)"/>
             </message_arguments>
         </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="ObjectDownloadListener(FileLfsRepository, AsyncContext, HttpServletResponse, AnyLongObjectId)"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/jgit/lfs/server/fs/ObjectUploadListener.java" type="org.eclipse.jgit.lfs.server.fs.ObjectUploadListener">
         <filter id="337682486">
@@ -111,5 +132,12 @@
                 <message_argument value="ObjectUploadListener(FileLfsRepository, AsyncContext, HttpServletRequest, HttpServletResponse, AnyLongObjectId)"/>
             </message_arguments>
         </filter>
+        <filter id="1141899266">
+            <message_arguments>
+                <message_argument value="7.0"/>
+                <message_argument value="7.4"/>
+                <message_argument value="ObjectUploadListener(FileLfsRepository, AsyncContext, HttpServletRequest, HttpServletResponse, AnyLongObjectId)"/>
+            </message_arguments>
+        </filter>
     </resource>
 </component>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/feature.xml
index 79cd1ba..fc3a907 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/feature.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/feature.xml
@@ -54,26 +54,4 @@
          install-size="0"
          version="0.0.0"
          unpack="false"/>
-
-   <plugin
-         id="org.apache.commons.logging"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.apache.sshd.osgi"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.apache.sshd.sftp"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
 </feature>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.32.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.32.target
index 8f28f99..fda816e 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.32.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.32.target
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="jgit-4.32" sequenceNumber="1753881720">
+<target name="jgit-4.32" sequenceNumber="1756460383">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -61,13 +61,13 @@
         <dependency>
           <groupId>org.apache.sshd</groupId>
           <artifactId>sshd-osgi</artifactId>
-          <version>2.15.0</version>
+          <version>2.16.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.apache.sshd</groupId>
           <artifactId>sshd-sftp</artifactId>
-          <version>2.15.0</version>
+          <version>2.16.0</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -77,7 +77,7 @@
         <dependency>
           <groupId>org.mockito</groupId>
           <artifactId>mockito-core</artifactId>
-          <version>5.18.0</version>
+          <version>5.19.0</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -103,61 +103,61 @@
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-servlet</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-nested</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-security</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-http</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-io</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-security</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-server</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-session</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util-ajax</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
@@ -203,13 +203,13 @@
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy</artifactId>
-          <version>1.17.6</version>
+          <version>1.17.7</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy-agent</artifactId>
-          <version>1.17.6</version>
+          <version>1.17.7</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -247,7 +247,7 @@
         <dependency>
           <groupId>org.assertj</groupId>
           <artifactId>assertj-core</artifactId>
-          <version>3.27.3</version>
+          <version>3.27.4</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -273,7 +273,7 @@
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-compress</artifactId>
-          <version>1.27.1</version>
+          <version>1.28.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.33.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.33.target
index 546e8d0..4a0ca74 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.33.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.33.target
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="jgit-4.33" sequenceNumber="1753881721">
+<target name="jgit-4.33" sequenceNumber="1756460383">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -61,13 +61,13 @@
         <dependency>
           <groupId>org.apache.sshd</groupId>
           <artifactId>sshd-osgi</artifactId>
-          <version>2.15.0</version>
+          <version>2.16.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.apache.sshd</groupId>
           <artifactId>sshd-sftp</artifactId>
-          <version>2.15.0</version>
+          <version>2.16.0</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -77,7 +77,7 @@
         <dependency>
           <groupId>org.mockito</groupId>
           <artifactId>mockito-core</artifactId>
-          <version>5.18.0</version>
+          <version>5.19.0</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -103,61 +103,61 @@
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-servlet</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-nested</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-security</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-http</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-io</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-security</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-server</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-session</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util-ajax</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
@@ -203,13 +203,13 @@
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy</artifactId>
-          <version>1.17.6</version>
+          <version>1.17.7</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy-agent</artifactId>
-          <version>1.17.6</version>
+          <version>1.17.7</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -247,7 +247,7 @@
         <dependency>
           <groupId>org.assertj</groupId>
           <artifactId>assertj-core</artifactId>
-          <version>3.27.3</version>
+          <version>3.27.4</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -273,7 +273,7 @@
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-compress</artifactId>
-          <version>1.27.1</version>
+          <version>1.28.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.34.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.34.target
index 394698a..e7fb7e2 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.34.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.34.target
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="jgit-4.34" sequenceNumber="1753881720">
+<target name="jgit-4.34" sequenceNumber="1756460383">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -61,13 +61,13 @@
         <dependency>
           <groupId>org.apache.sshd</groupId>
           <artifactId>sshd-osgi</artifactId>
-          <version>2.15.0</version>
+          <version>2.16.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.apache.sshd</groupId>
           <artifactId>sshd-sftp</artifactId>
-          <version>2.15.0</version>
+          <version>2.16.0</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -77,7 +77,7 @@
         <dependency>
           <groupId>org.mockito</groupId>
           <artifactId>mockito-core</artifactId>
-          <version>5.18.0</version>
+          <version>5.19.0</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -103,61 +103,61 @@
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-servlet</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-nested</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-security</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-http</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-io</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-security</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-server</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-session</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util-ajax</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
@@ -203,13 +203,13 @@
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy</artifactId>
-          <version>1.17.6</version>
+          <version>1.17.7</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy-agent</artifactId>
-          <version>1.17.6</version>
+          <version>1.17.7</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -247,7 +247,7 @@
         <dependency>
           <groupId>org.assertj</groupId>
           <artifactId>assertj-core</artifactId>
-          <version>3.27.3</version>
+          <version>3.27.4</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -273,7 +273,7 @@
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-compress</artifactId>
-          <version>1.27.1</version>
+          <version>1.28.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.35.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.35.target
index 2c2a0e4..337ae70 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.35.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.35.target
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="jgit-4.35" sequenceNumber="1753881720">
+<target name="jgit-4.35" sequenceNumber="1756460383">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -61,13 +61,13 @@
         <dependency>
           <groupId>org.apache.sshd</groupId>
           <artifactId>sshd-osgi</artifactId>
-          <version>2.15.0</version>
+          <version>2.16.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.apache.sshd</groupId>
           <artifactId>sshd-sftp</artifactId>
-          <version>2.15.0</version>
+          <version>2.16.0</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -77,7 +77,7 @@
         <dependency>
           <groupId>org.mockito</groupId>
           <artifactId>mockito-core</artifactId>
-          <version>5.18.0</version>
+          <version>5.19.0</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -103,61 +103,61 @@
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-servlet</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-nested</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-security</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-http</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-io</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-security</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-server</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-session</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util-ajax</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
@@ -203,13 +203,13 @@
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy</artifactId>
-          <version>1.17.6</version>
+          <version>1.17.7</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy-agent</artifactId>
-          <version>1.17.6</version>
+          <version>1.17.7</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -247,7 +247,7 @@
         <dependency>
           <groupId>org.assertj</groupId>
           <artifactId>assertj-core</artifactId>
-          <version>3.27.3</version>
+          <version>3.27.4</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -273,7 +273,7 @@
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-compress</artifactId>
-          <version>1.27.1</version>
+          <version>1.28.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.36.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.36.target
index 099e672..e89e43f 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.36.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.36.target
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="jgit-4.36" sequenceNumber="1753881720">
+<target name="jgit-4.36" sequenceNumber="1756460383">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -61,13 +61,13 @@
         <dependency>
           <groupId>org.apache.sshd</groupId>
           <artifactId>sshd-osgi</artifactId>
-          <version>2.15.0</version>
+          <version>2.16.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.apache.sshd</groupId>
           <artifactId>sshd-sftp</artifactId>
-          <version>2.15.0</version>
+          <version>2.16.0</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -77,7 +77,7 @@
         <dependency>
           <groupId>org.mockito</groupId>
           <artifactId>mockito-core</artifactId>
-          <version>5.18.0</version>
+          <version>5.19.0</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -103,61 +103,61 @@
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-servlet</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-nested</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-security</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-http</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-io</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-security</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-server</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-session</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util-ajax</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
@@ -203,13 +203,13 @@
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy</artifactId>
-          <version>1.17.6</version>
+          <version>1.17.7</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy-agent</artifactId>
-          <version>1.17.6</version>
+          <version>1.17.7</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -247,7 +247,7 @@
         <dependency>
           <groupId>org.assertj</groupId>
           <artifactId>assertj-core</artifactId>
-          <version>3.27.3</version>
+          <version>3.27.4</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -273,7 +273,7 @@
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-compress</artifactId>
-          <version>1.27.1</version>
+          <version>1.28.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.37.target b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.37.target
index ce15c41..d99e9e3 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.37.target
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.37.target
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="jgit-4.37" sequenceNumber="1753881721">
+<target name="jgit-4.37" sequenceNumber="1756460383">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="com.jcraft.jsch" version="0.1.55.v20230916-1400"/>
@@ -61,13 +61,13 @@
         <dependency>
           <groupId>org.apache.sshd</groupId>
           <artifactId>sshd-osgi</artifactId>
-          <version>2.15.0</version>
+          <version>2.16.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.apache.sshd</groupId>
           <artifactId>sshd-sftp</artifactId>
-          <version>2.15.0</version>
+          <version>2.16.0</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -77,7 +77,7 @@
         <dependency>
           <groupId>org.mockito</groupId>
           <artifactId>mockito-core</artifactId>
-          <version>5.18.0</version>
+          <version>5.19.0</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -103,61 +103,61 @@
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-servlet</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-nested</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty.ee8</groupId>
           <artifactId>jetty-ee8-security</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-http</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-io</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-security</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-server</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-session</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-util-ajax</artifactId>
-          <version>12.0.23</version>
+          <version>12.1.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
@@ -203,13 +203,13 @@
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy</artifactId>
-          <version>1.17.6</version>
+          <version>1.17.7</version>
           <type>jar</type>
         </dependency>
         <dependency>
           <groupId>net.bytebuddy</groupId>
           <artifactId>byte-buddy-agent</artifactId>
-          <version>1.17.6</version>
+          <version>1.17.7</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -247,7 +247,7 @@
         <dependency>
           <groupId>org.assertj</groupId>
           <artifactId>assertj-core</artifactId>
-          <version>3.27.3</version>
+          <version>3.27.4</version>
           <type>jar</type>
         </dependency>
       </dependencies>
@@ -273,7 +273,7 @@
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-compress</artifactId>
-          <version>1.27.1</version>
+          <version>1.28.0</version>
           <type>jar</type>
         </dependency>
         <dependency>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/maven/dependencies.tpd b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/maven/dependencies.tpd
index a8d9d22..2af627f 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/maven/dependencies.tpd
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/maven/dependencies.tpd
@@ -15,7 +15,7 @@
 	dependency {
 		groupId = "org.apache.commons"
 		artifactId = "commons-compress"
-		version = "1.27.1"
+		version = "1.28.0"
 	}
 	dependency {
 		groupId = "org.apache.commons"
@@ -56,7 +56,7 @@
 	dependency {
 		groupId = "org.assertj"
 		artifactId = "assertj-core"
-		version = "3.27.3"
+		version = "3.27.4"
 	}
 }
 
@@ -97,12 +97,12 @@
 	dependency {
 		groupId = "net.bytebuddy"
 		artifactId = "byte-buddy"
-		version = "1.17.6"
+		version = "1.17.7"
 	}
 	dependency {
 		groupId = "net.bytebuddy"
 		artifactId = "byte-buddy-agent"
-		version = "1.17.6"
+		version = "1.17.7"
 	}
 }
 
@@ -154,52 +154,52 @@
 	dependency {
 		groupId = "org.eclipse.jetty.ee8"
 		artifactId = "jetty-ee8-servlet"
-		version = "12.0.23"
+		version = "12.1.0"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty.ee8"
 		artifactId = "jetty-ee8-nested"
-		version = "12.0.23"
+		version = "12.1.0"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty.ee8"
 		artifactId = "jetty-ee8-security"
-		version = "12.0.23"
+		version = "12.1.0"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-http"
-		version = "12.0.23"
+		version = "12.1.0"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-io"
-		version = "12.0.23"
+		version = "12.1.0"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-security"
-		version = "12.0.23"
+		version = "12.1.0"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-server"
-		version = "12.0.23"
+		version = "12.1.0"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-session"
-		version = "12.0.23"
+		version = "12.1.0"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-util"
-		version = "12.0.23"
+		version = "12.1.0"
 	}
 	dependency {
 		groupId = "org.eclipse.jetty"
 		artifactId = "jetty-util-ajax"
-		version = "12.0.23"
+		version = "12.1.0"
 	}
 	dependency {
 		groupId = "jakarta.servlet"
@@ -235,7 +235,7 @@
 	dependency {
 		groupId = "org.mockito"
 		artifactId = "mockito-core"
-		version = "5.18.0"
+		version = "5.19.0"
 	}
 }
 
@@ -248,12 +248,12 @@
 	dependency {
 		groupId = "org.apache.sshd"
 		artifactId = "sshd-osgi"
-		version = "2.15.0"
+		version = "2.16.0"
 	}
 	dependency {
 		groupId = "org.apache.sshd"
 		artifactId = "sshd-sftp"
-		version = "2.15.0"
+		version = "2.16.0"
 	}
 }
 
diff --git a/org.eclipse.jgit.pgm/META-INF/services/org.eclipse.jgit.pgm.TextBuiltin b/org.eclipse.jgit.pgm/META-INF/services/org.eclipse.jgit.pgm.TextBuiltin
index 6bf88d9..0749e7b 100644
--- a/org.eclipse.jgit.pgm/META-INF/services/org.eclipse.jgit.pgm.TextBuiltin
+++ b/org.eclipse.jgit.pgm/META-INF/services/org.eclipse.jgit.pgm.TextBuiltin
@@ -27,6 +27,7 @@
 org.eclipse.jgit.pgm.MergeBase
 org.eclipse.jgit.pgm.MergeTool
 org.eclipse.jgit.pgm.MultiPackIndex
+org.eclipse.jgit.pgm.ObjectSizeIndex
 org.eclipse.jgit.pgm.PackRefs
 org.eclipse.jgit.pgm.Push
 org.eclipse.jgit.pgm.ReceivePack
diff --git a/org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/internal/CLIText.properties b/org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/internal/CLIText.properties
index e9630e9..606b29d 100644
--- a/org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/internal/CLIText.properties
+++ b/org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/internal/CLIText.properties
@@ -305,6 +305,7 @@
 usage_MergeBase=Find as good common ancestors as possible for a merge
 usage_MergesTwoDevelopmentHistories=Merges two development histories
 usage_MultiPackIndex=Operations over the multipack index
+usage_ObjectSizeIndex=Operations over the object size index
 usage_PackKeptObjects=Include objects in packs locked by a ".keep" file when repacking
 usage_PackRefs=Pack heads and tags for efficient repository access
 usage_PreserveOldPacks=Preserve old pack files by moving them into the preserved subdirectory instead of deleting them after repacking
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/ObjectSizeIndex.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/ObjectSizeIndex.java
new file mode 100644
index 0000000..a40c396
--- /dev/null
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/ObjectSizeIndex.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2025, Google LLC.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Distribution License v. 1.0 which is available at
+ * https://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+package org.eclipse.jgit.pgm;
+
+import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_MIN_BYTES_OBJ_SIZE_INDEX;
+import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_USE_OBJECT_SIZE_INDEX;
+import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_PACK_SECTION;
+
+import java.io.IOException;
+
+import org.eclipse.jgit.internal.storage.file.ObjectDirectory;
+import org.eclipse.jgit.internal.storage.file.Pack;
+import org.eclipse.jgit.internal.storage.file.PackObjectSizeIndexHelper;
+import org.eclipse.jgit.lib.TextProgressMonitor;
+import org.kohsuke.args4j.Argument;
+
+@Command(common = true, usage = "usage_ObjectSizeIndex")
+@SuppressWarnings("nls")
+class ObjectSizeIndex extends TextBuiltin {
+	@Argument(index = 0, required = true, usage = "write, check")
+	private String command;
+
+	@Override
+	protected void run() throws IOException {
+		switch (command) {
+		case "write":
+			writeObjectSizeIndex();
+			break;
+		case "check":
+			checkObjectSizeIndex();
+			break;
+		default:
+			outw.println("Unknown command " + command);
+		}
+	}
+
+	private void writeObjectSizeIndex() throws IOException {
+		if (!(db.getObjectDatabase() instanceof ObjectDirectory)) {
+			throw die("This repository object db doesn't have packs");
+		}
+		PackObjectSizeIndexHelper.forAllPacks(
+				(ObjectDirectory) db.getObjectDatabase(),
+				new TextProgressMonitor());
+	}
+
+	private void checkObjectSizeIndex() throws IOException {
+		if (!(db.getObjectDatabase() instanceof ObjectDirectory)) {
+			throw die("This repository object db doesn't have packs");
+		}
+
+		outw.println("Object size index configuration for this repo:");
+		outw.println("\n* Writing:");
+		printInt(CONFIG_PACK_SECTION, CONFIG_KEY_MIN_BYTES_OBJ_SIZE_INDEX);
+
+		outw.println("\n* Reading:");
+		printBoolean(CONFIG_PACK_SECTION, CONFIG_KEY_USE_OBJECT_SIZE_INDEX);
+
+		outw.println("\n* Packs - have object size index:");
+		for (Pack pack : ((ObjectDirectory) db.getObjectDatabase())
+				.getPacks()) {
+			String name = pack.getPackName();
+			boolean hasObjectSizeIndex = pack.hasObjectSizeIndex();
+			outw.println(
+					String.format("  - %s - %b", name, hasObjectSizeIndex));
+		}
+	}
+
+	private void printInt(String section, String name) throws IOException {
+		Integer value = db.getConfig().getInt(section, name);
+		String key = String.join(".", section, name);
+		outw.println("  - " + key + " = " + value);
+	}
+
+	private void printBoolean(String section, String name) throws IOException {
+		Boolean value = db.getConfig().getBoolean(section, name);
+		String key = String.join(".", section, name);
+		outw.println("  - " + key + " = " + value);
+	}
+}
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/ShowPackDelta.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/ShowPackDelta.java
index 74e322f..80d3503 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/ShowPackDelta.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/ShowPackDelta.java
@@ -71,8 +71,9 @@ protected void run() throws Exception {
 
 		PackWriter pw = new PackWriter(new PackConfig(), reader) {
 			@Override
-			public void select(ObjectToPack otp, StoredObjectRepresentation next) {
+			public boolean select(ObjectToPack otp, StoredObjectRepresentation next) {
 				otp.select(next);
+				return true;
 			}
 		};
 
diff --git a/org.eclipse.jgit.ssh.apache.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.ssh.apache.test/META-INF/MANIFEST.MF
index 78dfd14..b2ed4ca 100644
--- a/org.eclipse.jgit.ssh.apache.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.apache.test/META-INF/MANIFEST.MF
@@ -9,23 +9,23 @@
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Bundle-SCM: url=https://github.com/eclipse-jgit/jgit, connection=scm:git:https://eclipse.gerrithub.io/eclipse-jgit/jgit.git, developerConnection=scm:git:https://eclipse.gerrithub.io/a/eclipse-jgit/jgit.git
 Require-Bundle: org.hamcrest.core;bundle-version="[1.3.0,2.0.0)"
-Import-Package: org.apache.sshd.certificate;version="[2.15.0,2.16.0)",
- org.apache.sshd.client.config.hosts;version="[2.15.0,2.16.0)",
- org.apache.sshd.common;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.auth;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.cipher;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.config.keys;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.helpers;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.kex;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.keyprovider;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.session;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.signature;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.buffer;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.net;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.security;version="[2.15.0,2.16.0)",
- org.apache.sshd.core;version="[2.15.0,2.16.0)",
- org.apache.sshd.server;version="[2.15.0,2.16.0)",
- org.apache.sshd.server.forward;version="[2.15.0,2.16.0)",
+Import-Package: org.apache.sshd.certificate;version="[2.16.0,2.17.0)",
+ org.apache.sshd.client.config.hosts;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.auth;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.cipher;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.config.keys;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.helpers;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.kex;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.keyprovider;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.session;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.signature;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.buffer;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.net;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.security;version="[2.16.0,2.17.0)",
+ org.apache.sshd.core;version="[2.16.0,2.17.0)",
+ org.apache.sshd.server;version="[2.16.0,2.17.0)",
+ org.apache.sshd.server.forward;version="[2.16.0,2.17.0)",
  org.eclipse.jgit.annotations;version="[7.4.0,7.5.0)",
  org.eclipse.jgit.api;version="[7.4.0,7.5.0)",
  org.eclipse.jgit.api.errors;version="[7.4.0,7.5.0)",
diff --git a/org.eclipse.jgit.ssh.apache/META-INF/MANIFEST.MF b/org.eclipse.jgit.ssh.apache/META-INF/MANIFEST.MF
index e9f18d9..5153cc2 100644
--- a/org.eclipse.jgit.ssh.apache/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.ssh.apache/META-INF/MANIFEST.MF
@@ -39,58 +39,58 @@
    org.apache.sshd.client.keyverifier",
  org.eclipse.jgit.transport.sshd.agent;version="7.4.0"
 Import-Package: org.bouncycastle.jce.provider;version="[1.80.0,2.0.0)",
- org.apache.sshd.agent;version="[2.15.0,2.16.0)",
- org.apache.sshd.client;version="[2.15.0,2.16.0)",
- org.apache.sshd.client.auth;version="[2.15.0,2.16.0)",
- org.apache.sshd.client.auth.keyboard;version="[2.15.0,2.16.0)",
- org.apache.sshd.client.auth.password;version="[2.15.0,2.16.0)",
- org.apache.sshd.client.auth.pubkey;version="[2.15.0,2.16.0)",
- org.apache.sshd.client.channel;version="[2.15.0,2.16.0)",
- org.apache.sshd.client.config.hosts;version="[2.15.0,2.16.0)",
- org.apache.sshd.client.config.keys;version="[2.15.0,2.16.0)",
- org.apache.sshd.client.future;version="[2.15.0,2.16.0)",
- org.apache.sshd.client.keyverifier;version="[2.15.0,2.16.0)",
- org.apache.sshd.client.session;version="[2.15.0,2.16.0)",
- org.apache.sshd.client.session.forward;version="[2.15.0,2.16.0)",
- org.apache.sshd.common;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.auth;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.channel;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.cipher;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.compression;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.config.keys;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.config.keys.loader;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.config.keys.loader.openssh.kdf;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.config.keys.u2f;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.digest;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.forward;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.future;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.helpers;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.io;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.kex;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.kex.extension;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.kex.extension.parser;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.keyprovider;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.mac;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.random;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.session;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.session.helpers;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.signature;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.buffer;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.buffer.keys;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.closeable;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.io;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.io.der;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.io.functors;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.io.resource;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.logging;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.net;version="[2.15.0,2.16.0)",
- org.apache.sshd.common.util.security;version="[2.15.0,2.16.0)",
- org.apache.sshd.core;version="[2.15.0,2.16.0)",
- org.apache.sshd.server.auth;version="[2.15.0,2.16.0)",
- org.apache.sshd.sftp;version="[2.15.0,2.16.0)",
- org.apache.sshd.sftp.client;version="[2.15.0,2.16.0)",
- org.apache.sshd.sftp.common;version="[2.15.0,2.16.0)",
+ org.apache.sshd.agent;version="[2.16.0,2.17.0)",
+ org.apache.sshd.client;version="[2.16.0,2.17.0)",
+ org.apache.sshd.client.auth;version="[2.16.0,2.17.0)",
+ org.apache.sshd.client.auth.keyboard;version="[2.16.0,2.17.0)",
+ org.apache.sshd.client.auth.password;version="[2.16.0,2.17.0)",
+ org.apache.sshd.client.auth.pubkey;version="[2.16.0,2.17.0)",
+ org.apache.sshd.client.channel;version="[2.16.0,2.17.0)",
+ org.apache.sshd.client.config.hosts;version="[2.16.0,2.17.0)",
+ org.apache.sshd.client.config.keys;version="[2.16.0,2.17.0)",
+ org.apache.sshd.client.future;version="[2.16.0,2.17.0)",
+ org.apache.sshd.client.keyverifier;version="[2.16.0,2.17.0)",
+ org.apache.sshd.client.session;version="[2.16.0,2.17.0)",
+ org.apache.sshd.client.session.forward;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.auth;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.channel;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.cipher;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.compression;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.config.keys;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.config.keys.loader;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.config.keys.loader.openssh.kdf;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.config.keys.u2f;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.digest;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.forward;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.future;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.helpers;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.io;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.kex;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.kex.extension;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.kex.extension.parser;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.keyprovider;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.mac;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.random;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.session;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.session.helpers;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.signature;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.buffer;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.buffer.keys;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.closeable;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.io;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.io.der;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.io.functors;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.io.resource;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.logging;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.net;version="[2.16.0,2.17.0)",
+ org.apache.sshd.common.util.security;version="[2.16.0,2.17.0)",
+ org.apache.sshd.core;version="[2.16.0,2.17.0)",
+ org.apache.sshd.server.auth;version="[2.16.0,2.17.0)",
+ org.apache.sshd.sftp;version="[2.16.0,2.17.0)",
+ org.apache.sshd.sftp.client;version="[2.16.0,2.17.0)",
+ org.apache.sshd.sftp.common;version="[2.16.0,2.17.0)",
  org.eclipse.jgit.annotations;version="[7.4.0,7.5.0)",
  org.eclipse.jgit.api.errors;version="[7.4.0,7.5.0)",
  org.eclipse.jgit.errors;version="[7.4.0,7.5.0)",
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/BasePackWriterTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/BasePackWriterTest.java
index 92d7465..cd73c6a 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/BasePackWriterTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/BasePackWriterTest.java
@@ -19,7 +19,7 @@
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 
@@ -702,13 +702,29 @@ public void testShallowFetchShallowAncestorDepth2() throws Exception {
 	}
 
 	@Test
-	public void testTotalPackFilesScanWhenSearchForReuseTimeoutNotSet()
+	public void testTotalPackFilesScanWhenSearchForReuseTimeoutNotSetTrue()
 			throws Exception {
+		totalPackFilesScanWhenSearchForReuseTimeoutNotSet(true);
+	}
+
+	@Test
+	public void testTotalPackFilesScanWhenSearchForReuseTimeoutNotSetFalse()
+			throws Exception {
+		totalPackFilesScanWhenSearchForReuseTimeoutNotSet(false);
+	}
+
+	public void totalPackFilesScanWhenSearchForReuseTimeoutNotSet(boolean doReturn) throws Exception {
 		FileRepository fileRepository = setUpRepoWithMultiplePackfiles();
+		int numberOfPackFiles = (int) new GC(fileRepository).getStatistics().numberOfPackFiles;
+		int objectsInMultiplePacks = 2;
+		int objectsInOnePacks = 1;
+		int expectedSelectCalls = objectsInMultiplePacks * (doReturn ? numberOfPackFiles : 1)
+				+ objectsInOnePacks;
+
 		PackWriter mockedPackWriter = Mockito
 				.spy(new PackWriter(config, fileRepository.newObjectReader()));
 
-		doNothing().when(mockedPackWriter).select(any(), any());
+		doReturn(doReturn).when(mockedPackWriter).select(any(), any());
 
 		try (FileOutputStream packOS = new FileOutputStream(
 				getPackFileToWrite(fileRepository, mockedPackWriter))) {
@@ -716,27 +732,37 @@ public void testTotalPackFilesScanWhenSearchForReuseTimeoutNotSet()
 					NullProgressMonitor.INSTANCE, packOS);
 		}
 
-		long numberOfPackFiles = new GC(fileRepository)
-				.getStatistics().numberOfPackFiles;
-		int expectedSelectCalls =
-				// Objects contained in multiple packfiles * number of packfiles
-				2 * (int) numberOfPackFiles +
-				// Objects in single packfile
-						1;
 		verify(mockedPackWriter, times(expectedSelectCalls)).select(any(),
 				any());
 	}
 
 	@Test
-	public void testTotalPackFilesScanWhenSkippingSearchForReuseTimeoutCheck()
+	public void testTotalPackFilesScanWhenSkippingSearchForReuseTimeoutCheckTrue()
 			throws Exception {
+		totalPackFilesScanWhenSkippingSearchForReuseTimeoutCheck(true);
+	}
+
+	@Test
+	public void testTotalPackFilesScanWhenSkippingSearchForReuseTimeoutCheckFalse()
+			throws Exception {
+		totalPackFilesScanWhenSkippingSearchForReuseTimeoutCheck(false);
+	}
+
+	public void totalPackFilesScanWhenSkippingSearchForReuseTimeoutCheck(
+			boolean doReturn) throws Exception {
 		FileRepository fileRepository = setUpRepoWithMultiplePackfiles();
+		int numberOfPackFiles = (int) new GC(fileRepository).getStatistics().numberOfPackFiles;
+		int objectsInMultiplePacks = 2;
+		int objectsInOnePacks = 1;
+		int expectedSelectCalls = objectsInMultiplePacks * (doReturn ? numberOfPackFiles : 1)
+				+ objectsInOnePacks;
+
 		PackConfig packConfig = new PackConfig();
 		packConfig.setSearchForReuseTimeout(Duration.ofSeconds(-1));
 		PackWriter mockedPackWriter = Mockito.spy(
 				new PackWriter(packConfig, fileRepository.newObjectReader()));
 
-		doNothing().when(mockedPackWriter).select(any(), any());
+		doReturn(doReturn).when(mockedPackWriter).select(any(), any());
 
 		try (FileOutputStream packOS = new FileOutputStream(
 				getPackFileToWrite(fileRepository, mockedPackWriter))) {
@@ -744,28 +770,31 @@ public void testTotalPackFilesScanWhenSkippingSearchForReuseTimeoutCheck()
 					NullProgressMonitor.INSTANCE, packOS);
 		}
 
-		long numberOfPackFiles = new GC(fileRepository)
-				.getStatistics().numberOfPackFiles;
-		int expectedSelectCalls =
-				// Objects contained in multiple packfiles * number of packfiles
-				2 * (int) numberOfPackFiles +
-				// Objects contained in single packfile
-						1;
 		verify(mockedPackWriter, times(expectedSelectCalls)).select(any(),
 				any());
 	}
 
 	@Test
-	public void testPartialPackFilesScanWhenDoingSearchForReuseTimeoutCheck()
+	public void partialPackFilesScanWhenDoingSearchForReuseTimeoutCheck()
 			throws Exception {
+		int objectsInMultiplePacks = 2;
+		int objectsInOnePacks = 1;
+		int expectedSelectCalls = objectsInMultiplePacks + objectsInOnePacks;
+		testPartialPackFilesScanWhenDoingSearchForReuseTimeoutCheck(true, expectedSelectCalls);
+		testPartialPackFilesScanWhenDoingSearchForReuseTimeoutCheck(false, expectedSelectCalls);
+	}
+
+	public void testPartialPackFilesScanWhenDoingSearchForReuseTimeoutCheck(
+			boolean doReturn, int expectedSelectCalls) throws Exception {
 		FileRepository fileRepository = setUpRepoWithMultiplePackfiles();
+
 		PackConfig packConfig = new PackConfig();
 		packConfig.setSearchForReuseTimeout(Duration.ofSeconds(-1));
 		PackWriter mockedPackWriter = Mockito.spy(
 				new PackWriter(packConfig, fileRepository.newObjectReader()));
 		mockedPackWriter.enableSearchForReuseTimeout();
 
-		doNothing().when(mockedPackWriter).select(any(), any());
+		doReturn(doReturn).when(mockedPackWriter).select(any(), any());
 
 		try (FileOutputStream packOS = new FileOutputStream(
 				getPackFileToWrite(fileRepository, mockedPackWriter))) {
@@ -773,7 +802,6 @@ public void testPartialPackFilesScanWhenDoingSearchForReuseTimeoutCheck()
 					NullProgressMonitor.INSTANCE, packOS);
 		}
 
-		int expectedSelectCalls = 3; // Objects in packfiles
 		verify(mockedPackWriter, times(expectedSelectCalls)).select(any(),
 				any());
 	}
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RevWalkSortTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RevWalkSortTest.java
index 8af6747..d27d5c7 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RevWalkSortTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RevWalkSortTest.java
@@ -128,6 +128,56 @@ public void testSort_TOPO() throws Exception {
 	}
 
 	@Test
+	public void testSort_TOPO_reachable() throws Exception {
+		// c1 is back dated before its parent.
+		//
+		final RevCommit a = commit();
+		final RevCommit b = commit(a);
+		final RevCommit c1 = commit(-5, b);
+		final RevCommit c2 = commit(10, b);
+		final RevCommit d = commit(c1, c2);
+
+		assertEquals("", d.getShortMessage());
+		assertEquals("", c2.getShortMessage());
+		assertEquals("", c1.getShortMessage());
+		assertEquals("", b.getShortMessage());
+		rw.sort(RevSort.TOPO);
+		markStart(d);
+		markUninteresting(b);
+		assertEquals("", d.getShortMessage());
+		assertEquals("", c2.getShortMessage());
+		assertEquals("", c1.getShortMessage());
+		assertEquals("", b.getShortMessage());
+		assertCommit(d, rw.next());
+		assertCommit(c2, rw.next());
+		assertCommit(c1, rw.next());
+		assertNull(rw.next());
+		assertEquals("", d.getShortMessage());
+		assertEquals("", c2.getShortMessage());
+		assertEquals("", c1.getShortMessage());
+		assertEquals("", b.getShortMessage());
+	}
+
+	@Test
+	public void testSort_TOPO_reachable2() throws Exception {
+		// c1 is back dated before its parent.
+		//
+		final RevCommit a = commit();
+		final RevCommit b = commit(a);
+		final RevCommit c1 = commit(-5, b);
+		final RevCommit c2 = commit(10, b);
+		final RevCommit d = commit(c1, c2);
+
+		assertEquals("", d.getShortMessage());
+		rw.sort(RevSort.TOPO);
+		markStart(d);
+		markUninteresting(d);
+		assertEquals("", d.getShortMessage());
+		assertNull(rw.next());
+		assertEquals("", d.getShortMessage());
+	}
+
+	@Test
 	public void testSort_TOPO_REVERSE() throws Exception {
 		// c1 is back dated before its parent.
 		//
diff --git a/org.eclipse.jgit/.settings/.api_filters b/org.eclipse.jgit/.settings/.api_filters
new file mode 100644
index 0000000..bf62ed4
--- /dev/null
+++ b/org.eclipse.jgit/.settings/.api_filters
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<component id="org.eclipse.jgit" version="2">
+    <resource path="src/org/eclipse/jgit/util/Iterators.java" type="org.eclipse.jgit.util.Iterators">
+        <filter id="1109393411">
+            <message_arguments>
+                <message_argument value="6.10.2"/>
+                <message_argument value="org.eclipse.jgit.util.Iterators"/>
+            </message_arguments>
+        </filter>
+    </resource>
+</component>
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java
index 5bc035a..a8b866d 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java
@@ -201,7 +201,24 @@ public Git(Repository repo) {
 		this(repo, false);
 	}
 
-	Git(Repository repo, boolean closeRepo) {
+	/**
+	 * Construct a new {@link org.eclipse.jgit.api.Git} object which can
+	 * interact with the specified git repository.
+	 * <p>
+	 * All command classes returned by methods of this class will always
+	 * interact with this git repository.
+	 * <p>
+	 * If {@code closeRepo = false} the caller is responsible for closing the
+	 * repository.
+	 *
+	 * @param repo
+	 *            the git repository this class is interacting with;
+	 *            {@code null} is not allowed.
+	 * @param closeRepo
+	 *            whether to close the repository when this instance is closed
+	 * @since 7.4
+	 */
+	public Git(Repository repo, boolean closeRepo) {
 		this.repo = requireNonNull(repo);
 		this.closeRepo = closeRepo;
 	}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/commitgraph/CommitGraphWriter.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/commitgraph/CommitGraphWriter.java
index 55539e2..45ca470 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/commitgraph/CommitGraphWriter.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/commitgraph/CommitGraphWriter.java
@@ -134,8 +134,9 @@ public Stats write(@NonNull ProgressMonitor monitor,
 		chunks = Collections.unmodifiableList(chunks);
 
 		long expectedSize = calculateExpectedSize(chunks);
-		try (CancellableDigestOutputStream out = new CancellableDigestOutputStream(
-				monitor, commitGraphStream)) {
+		try {
+			CancellableDigestOutputStream out = new CancellableDigestOutputStream(
+				monitor, commitGraphStream);
 			writeHeader(out, chunks.size());
 			writeChunkLookup(out, chunks);
 			writeChunks(out, chunks);
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java
index 97473bb..5be4148 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java
@@ -949,13 +949,9 @@ void writeCommitGraph(@NonNull Set<? extends ObjectId> wants)
 			tmpFile = File.createTempFile("commit_", //$NON-NLS-1$
 					COMMIT_GRAPH.getTmpExtension(),
 					repo.getObjectDatabase().getInfoDirectory());
-			// write the commit-graph file
-			try (FileOutputStream fos = new FileOutputStream(tmpFile);
-					FileChannel channel = fos.getChannel();
-					OutputStream channelStream = Channels
-							.newOutputStream(channel)) {
-				writer.write(pm, channelStream);
-				channel.force(true);
+			// write the commit-graph to temporary file
+			try (FileOutputStream fos = new FileOutputStream(tmpFile)) {
+				writer.write(pm, fos);
 			}
 
 			// rename the temporary file to real file
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/ObjectDirectory.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/ObjectDirectory.java
index dc25bfd..af1671d 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/ObjectDirectory.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/ObjectDirectory.java
@@ -446,12 +446,12 @@ private long getObjectSizeWithoutRestoring(WindowCursor curs,
 			AnyObjectId id) throws IOException {
 		if (loose.hasCached(id)) {
 			long len = loose.getSize(curs, id);
-			if (0 <= len) {
+			if (len >= 0) {
 				return len;
 			}
 		}
 		long len = getPackedSizeFromSelfOrAlternate(curs, id, null);
-		if (0 <= len) {
+		if (len >= 0) {
 			return len;
 		}
 		return getLooseSizeFromSelfOrAlternate(curs, id, null);
@@ -461,14 +461,14 @@ private long getPackedSizeFromSelfOrAlternate(WindowCursor curs,
 			AnyObjectId id, Set<AlternateHandle.Id> skips)
 			throws PackMismatchException {
 		long len = packed.getSize(curs, id);
-		if (0 <= len) {
+		if (len >= 0) {
 			return len;
 		}
 		skips = addMe(skips);
 		for (AlternateHandle alt : myAlternates()) {
 			if (!skips.contains(alt.getId())) {
 				len = alt.db.getPackedSizeFromSelfOrAlternate(curs, id, skips);
-				if (0 <= len) {
+				if (len >= 0) {
 					return len;
 				}
 			}
@@ -479,14 +479,14 @@ private long getPackedSizeFromSelfOrAlternate(WindowCursor curs,
 	private long getLooseSizeFromSelfOrAlternate(WindowCursor curs,
 			AnyObjectId id, Set<AlternateHandle.Id> skips) throws IOException {
 		long len = loose.getSize(curs, id);
-		if (0 <= len) {
+		if (len >= 0) {
 			return len;
 		}
 		skips = addMe(skips);
 		for (AlternateHandle alt : myAlternates()) {
 			if (!skips.contains(alt.getId())) {
 				len = alt.db.getLooseSizeFromSelfOrAlternate(curs, id, skips);
-				if (0 <= len) {
+				if (len >= 0) {
 					return len;
 				}
 			}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackDirectory.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackDirectory.java
index f50c17e..544961b 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackDirectory.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackDirectory.java
@@ -27,6 +27,7 @@
 import java.util.EnumMap;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -49,6 +50,7 @@
 import org.eclipse.jgit.lib.ObjectId;
 import org.eclipse.jgit.lib.ObjectLoader;
 import org.eclipse.jgit.util.FileUtils;
+import org.eclipse.jgit.util.Iterators;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -275,12 +277,14 @@ void selectRepresentation(PackWriter packer, ObjectToPack otp,
 		PackList pList = packList.get();
 		int retries = 0;
 		SEARCH: for (;;) {
-			for (Pack p : pList.packs) {
+			for (Pack p : pList.inReverse()) {
 				try {
 					LocalObjectRepresentation rep = p.representation(curs, otp);
 					p.resetTransientErrorCount();
 					if (rep != null) {
-						packer.select(otp, rep);
+						if (!packer.select(otp, rep)) {
+							return;
+						}
 						packer.checkSearchForReuseTimeout();
 					}
 				} catch (SearchForReuseTimeout e) {
@@ -584,5 +588,13 @@ static final class PackList {
 			this.snapshot = monitor;
 			this.packs = packs;
 		}
+
+		Iterable<Pack> inReverse() {
+			return Iterators.iterable(reverseIterator());
+		}
+
+		Iterator<Pack> reverseIterator() {
+			return Iterators.reverseIterator(packs);
+		}
 	}
 }
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackObjectSizeIndexHelper.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackObjectSizeIndexHelper.java
new file mode 100644
index 0000000..acef741
--- /dev/null
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackObjectSizeIndexHelper.java
@@ -0,0 +1,92 @@
+package org.eclipse.jgit.internal.storage.file;
+
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jgit.internal.storage.pack.PackExt;
+import org.eclipse.jgit.lib.ObjectId;
+import org.eclipse.jgit.lib.ProgressMonitor;
+import org.eclipse.jgit.transport.PackedObjectInfo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * A wrapper to write the object size index for existing packs (on disk)
+ */
+public class PackObjectSizeIndexHelper {
+
+	private final static Logger LOG = LoggerFactory
+			.getLogger(PackObjectSizeIndexHelper.class);
+
+	/**
+	 * Add an object size index to all the packs without one in this object
+	 * database.
+	 *
+	 * @param db
+	 *            object db for packs
+	 * @param pm
+	 *            progress monitor for the object listing phase (adding size to
+	 *            the objects in index)
+	 * @throws IOException
+	 *             an error reading the packs or writing the object size index
+	 *             file
+	 */
+	public static void forAllPacks(ObjectDirectory db, ProgressMonitor pm)
+			throws IOException {
+		WindowCursor wc = (WindowCursor) db.newReader();
+		for (Pack pack : db.getPacks()) {
+			LOG.info("Checking " + pack.getPackName()); //$NON-NLS-1$
+			if (pack.hasObjectSizeIndex()) {
+				LOG.debug("    has object size index"); //$NON-NLS-1$
+				continue;
+			}
+
+			List<PackedObjectInfo> objectsInPack = getObjectsInPack(wc, pack,
+					pm);
+			LOG.debug(String.format("    index has %d objects", //$NON-NLS-1$
+					objectsInPack.size()));
+			if (objectsInPack.isEmpty()) {
+				continue;
+			}
+
+			LOG.info("    start writing object size index"); //$NON-NLS-1$
+			PackFile packFile = pack.getPackFile()
+					.create(PackExt.OBJECT_SIZE_INDEX);
+			long start = System.currentTimeMillis();
+			try (FileOutputStream out = new FileOutputStream(packFile)) {
+				PackObjectSizeIndexWriter writer = PackObjectSizeIndexWriter
+						.createWriter(out, 0);
+				writer.write(objectsInPack);
+			}
+			LOG.info(String.format("     done writing. Took %d ms", //$NON-NLS-1$
+					System.currentTimeMillis() - start));
+		}
+	}
+
+	private static List<PackedObjectInfo> getObjectsInPack(WindowCursor wc,
+			Pack pack, ProgressMonitor pm) throws IOException {
+		PackIndex idx = pack.getIndex();
+		PackReverseIndex ridx = new PackReverseIndexComputed(idx);
+		pm.beginTask("Adding size to objects in index", //$NON-NLS-1$
+				(int) idx.getObjectCount());
+		// This is much faster in offset order
+		List<PackedObjectInfo> objs = new ArrayList<>(
+				(int) idx.getObjectCount());
+		for (int i = 0; i < idx.getObjectCount(); i++) {
+			ObjectId oid = ridx.findObjectByPosition(i);
+			PackedObjectInfo poi = new PackedObjectInfo(oid);
+			long offset = idx.findOffset(oid);
+			poi.setFullSize(pack.getObjectSize(wc, offset));
+			poi.setType(pack.getObjectType(wc, offset));
+			objs.add(poi);
+			pm.update(1);
+		}
+		pm.endTask();
+		return objs;
+	}
+
+	private PackObjectSizeIndexHelper() {
+	}
+}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/WindowCache.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/WindowCache.java
index 15c125c..9c60d36 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/WindowCache.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/WindowCache.java
@@ -522,7 +522,8 @@ else if (eb < 4)
 			bs = tableSize / 2;
 		}
 		removalBlockSize = bs;
-		numRemovalBlocks = tableSize / removalBlockSize;
+		numRemovalBlocks = (int) Math
+				.ceil((double) tableSize / removalBlockSize);
 		blockBeingRemoved = numRemovalBlocks - 1;
 
 		if (maxFiles < 1)
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/WindowCursor.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/WindowCursor.java
index 6612cfc..33459ef 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/WindowCursor.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/WindowCursor.java
@@ -36,6 +36,7 @@
 import org.eclipse.jgit.lib.BitmapIndex;
 import org.eclipse.jgit.lib.BitmapIndex.BitmapBuilder;
 import org.eclipse.jgit.internal.storage.commitgraph.CommitGraph;
+import org.eclipse.jgit.lib.ConfigConstants;
 import org.eclipse.jgit.lib.Constants;
 import org.eclipse.jgit.lib.InflaterCache;
 import org.eclipse.jgit.lib.ObjectId;
@@ -49,6 +50,8 @@ final class WindowCursor extends ObjectReader implements ObjectReuseAsIs {
 	/** Temporary buffer large enough for at least one raw object id. */
 	final byte[] tempId = new byte[Constants.OBJECT_ID_LENGTH];
 
+	private final boolean useObjectSizeIndex;
+
 	private Inflater inf;
 
 	private ByteWindow window;
@@ -66,6 +69,10 @@ final class WindowCursor extends ObjectReader implements ObjectReuseAsIs {
 		this.db = db;
 		this.createdFromInserter = null;
 		this.streamFileThreshold = WindowCache.getStreamFileThreshold();
+		this.useObjectSizeIndex = db == null ? false
+				: db.getConfig().getBoolean(
+				ConfigConstants.CONFIG_PACK_SECTION,
+				ConfigConstants.CONFIG_KEY_USE_OBJECT_SIZE_INDEX, false);
 	}
 
 	WindowCursor(FileObjectDatabase db,
@@ -73,6 +80,10 @@ final class WindowCursor extends ObjectReader implements ObjectReuseAsIs {
 		this.db = db;
 		this.createdFromInserter = createdFromInserter;
 		this.streamFileThreshold = WindowCache.getStreamFileThreshold();
+		this.useObjectSizeIndex = db == null ? false
+				: db.getConfig().getBoolean(
+				ConfigConstants.CONFIG_PACK_SECTION,
+				ConfigConstants.CONFIG_KEY_USE_OBJECT_SIZE_INDEX, false);
 	}
 
 	DeltaBaseCache getDeltaBaseCache() {
@@ -177,9 +188,11 @@ public long getObjectSize(AnyObjectId objectId, int typeHint)
 			return getObjectSizeStorage(objectId, typeHint);
 		}
 
-		long sz = pack.getIndexedObjectSize(objectId);
-		if (sz >= 0) {
-			return sz;
+		if (useObjectSizeIndex && pack.hasObjectSizeIndex()) {
+			long sz = pack.getIndexedObjectSize(objectId);
+			if (sz >= 0) {
+				return sz;
+			}
 		}
 		return getObjectSizeStorage(objectId, typeHint);
 	}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/io/CancellableDigestOutputStream.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/io/CancellableDigestOutputStream.java
index ce86eab..9ad2f43 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/io/CancellableDigestOutputStream.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/io/CancellableDigestOutputStream.java
@@ -15,6 +15,7 @@
 
 import java.io.IOException;
 import java.io.InterruptedIOException;
+import java.io.FilterOutputStream;
 import java.io.OutputStream;
 import java.security.MessageDigest;
 
@@ -22,15 +23,13 @@
  * An OutputStream that keeps a digest and checks every N bytes for
  * cancellation.
  */
-public class CancellableDigestOutputStream extends OutputStream {
+public class CancellableDigestOutputStream extends FilterOutputStream {
 
 	/** The OutputStream checks every this value for cancellation **/
 	public static final int BYTES_TO_WRITE_BEFORE_CANCEL_CHECK = 128 * 1024;
 
 	private final ProgressMonitor writeMonitor;
 
-	private final OutputStream out;
-
 	private final MessageDigest md = Constants.newMessageDigest();
 
 	private long count;
@@ -47,8 +46,8 @@ public class CancellableDigestOutputStream extends OutputStream {
 	 */
 	public CancellableDigestOutputStream(ProgressMonitor writeMonitor,
 			OutputStream out) {
+		super(out);
 		this.writeMonitor = writeMonitor;
-		this.out = out;
 		this.checkCancelAt = BYTES_TO_WRITE_BEFORE_CANCEL_CHECK;
 	}
 
@@ -113,9 +112,4 @@ public final void write(byte[] b, int off, int len) throws IOException {
 			len -= n;
 		}
 	}
-
-	@Override
-	public void flush() throws IOException {
-		out.flush();
-	}
 }
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java
index f025d4e..27fb814 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java
@@ -2394,17 +2394,46 @@ private boolean exclude(AnyObjectId objectId) {
 	 * this method once for each representation available for an object, to
 	 * allow the writer to find the most suitable one for the output.
 	 *
+	 * This method tries to take a very simple approach to avoiding delta chains
+	 * during object reuse by selecting from the oldest pack that contains them.
+	 * This helps select many objects from the same pack which helps make good
+	 * use of any WindowCache caching, and it helps prevent cycles because a
+	 * pack must not have a cycle in the delta chain. If both objects A and B
+	 * are chosen out of the same source pack then there cannot be an A->B->A
+	 * cycle.
+	 *
+	 * The oldest pack is also the most likely to have the smallest deltas. It
+	 * generally is the biggest pack in the system and probably came from the
+	 * clone (or last GC) of this repository, where all objects were previously
+	 * considered and packed tightly together. If an object appears again (for
+	 * example due to a revert and a push into this repository) the newer copy
+	 * won't be nearly as small as the older delta version of it, even if the
+	 * newer one is also itself a delta.
+	 *
+	 * Thus this method is optimized for being called in an order that presumes
+	 * that earlier representations are better than later ones, and it expects
+	 * representations from older pack files to be tested first, and it will
+	 * shortcut any searching once it is satisfied with the selected
+	 * representation. Perhaps ideally representation testing ordering should be
+	 * based on packfile object count instead of age since file age can be
+	 * altered, and be deceiving for other reasons. Perhaps the presence of a
+	 * bitmap file for a pack file should prioritize it to be tested even
+	 * earlier than object count?
+	 *
 	 * @param otp
 	 *            the object being packed.
 	 * @param next
 	 *            the next available representation from the repository.
+	 * @return whether the search should continue in the hopes of finding a
+	 *         better representation
 	 */
-	public void select(ObjectToPack otp, StoredObjectRepresentation next) {
+	public boolean select(ObjectToPack otp, StoredObjectRepresentation next) {
 		int nFmt = next.getFormat();
 
 		if (!cachedPacks.isEmpty()) {
-			if (otp.isEdge())
-				return;
+			if (otp.isEdge()) {
+				return false;
+			}
 			if (nFmt == PACK_WHOLE || nFmt == PACK_DELTA) {
 				for (CachedPack pack : cachedPacks) {
 					if (pack.hasObject(otp, next)) {
@@ -2412,7 +2441,7 @@ public void select(ObjectToPack otp, StoredObjectRepresentation next) {
 						otp.clearDeltaBase();
 						otp.clearReuseAsIs();
 						pruneCurrentObjectList = true;
-						return;
+						return false;
 					}
 				}
 			}
@@ -2422,23 +2451,22 @@ public void select(ObjectToPack otp, StoredObjectRepresentation next) {
 			ObjectId baseId = next.getDeltaBase();
 			ObjectToPack ptr = objectsMap.get(baseId);
 			if (ptr != null && !ptr.isEdge()) {
-				otp.setDeltaBase(ptr);
-				otp.setReuseAsIs();
-			} else if (thin && have(ptr, baseId)) {
-				otp.setDeltaBase(baseId);
-				otp.setReuseAsIs();
-			} else {
-				otp.clearDeltaBase();
-				otp.clearReuseAsIs();
+				return useDelta(otp, next, ptr);
 			}
+			if (thin && have(ptr, baseId)) {
+				return useDelta(otp, next, baseId);
+			}
+			otp.clearDeltaBase();
+			otp.clearReuseAsIs();
 		} else if (nFmt == PACK_WHOLE && config.isReuseObjects()) {
 			int nWeight = next.getWeight();
 			if (otp.isReuseAsIs() && !otp.isDeltaRepresentation()) {
 				// We've chosen another PACK_WHOLE format for this object,
 				// choose the one that has the smaller compressed size.
 				//
-				if (otp.getWeight() <= nWeight)
-					return;
+				if (otp.getWeight() < nWeight) {
+					return true;
+				}
 			}
 			otp.clearDeltaBase();
 			otp.setReuseAsIs();
@@ -2450,6 +2478,15 @@ public void select(ObjectToPack otp, StoredObjectRepresentation next) {
 
 		otp.setDeltaAttempted(reuseDeltas && next.wasDeltaAttempted());
 		otp.select(next);
+		return true;
+	}
+
+	private boolean useDelta(ObjectToPack otp, StoredObjectRepresentation rep, ObjectId base) {
+		otp.setDeltaBase(base);
+		otp.setReuseAsIs();
+		otp.setDeltaAttempted(reuseDeltas && rep.wasDeltaAttempted());
+		otp.select(rep);
+		return false;
 	}
 
 	private final boolean have(ObjectToPack ptr, AnyObjectId objectId) {
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/PendingGenerator.java b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/PendingGenerator.java
index a49f787..926e45d 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/PendingGenerator.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/PendingGenerator.java
@@ -100,11 +100,13 @@ RevCommit next() throws MissingObjectException,
 				}
 
 				final boolean produce;
-				if ((c.flags & UNINTERESTING) != 0)
+				final boolean hadBody = c.getRawBuffer() != null;
+				if ((c.flags & UNINTERESTING) != 0) {
 					produce = false;
-				else {
-					if (filter.requiresCommitBody())
+				} else {
+					if (filter.requiresCommitBody() && !hadBody) {
 						c.parseBody(walker);
+					}
 					produce = filter.include(walker, c);
 				}
 
@@ -140,15 +142,17 @@ RevCommit next() throws MissingObjectException,
 					} else {
 						overScan = OVER_SCAN;
 					}
-					if (canDispose)
+					if (canDispose && !hadBody) {
 						c.disposeBody();
+					}
 					continue;
 				}
 
-				if (produce)
+				if (produce) {
 					return last = c;
-				else if (canDispose)
+				} else if (canDispose && !hadBody) {
 					c.disposeBody();
+				}
 			}
 		} catch (StopWalkException swe) {
 			pending.clear();
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java
index a65d0b7..c9a48bf 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java
@@ -106,6 +106,7 @@
 import org.eclipse.jgit.util.SystemReader;
 import org.eclipse.jgit.util.TemporaryBuffer;
 import org.eclipse.jgit.util.io.DisabledOutputStream;
+import org.eclipse.jgit.util.io.SilentInputStream;
 import org.eclipse.jgit.util.io.UnionInputStream;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -1558,7 +1559,8 @@ protected void doFetch(ProgressMonitor monitor, Collection<Ref> want,
 				throws TransportException {
 			svc = new MultiRequestService(SVC_UPLOAD_PACK,
 					getProtocolVersion());
-			try (InputStream svcIn = svc.getInputStream();
+			try (InputStream svcIn = new SilentInputStream(
+					svc.getInputStream());
 					OutputStream svcOut = svc.getOutputStream()) {
 				init(svcIn, svcOut);
 				super.doFetch(monitor, want, have, outputStream);
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/Iterators.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/Iterators.java
new file mode 100644
index 0000000..93a2847
--- /dev/null
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/Iterators.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2025, NVIDIA Corporation.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Distribution License v. 1.0 which is available at
+ * https://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+package org.eclipse.jgit.util;
+
+import java.util.Iterator;
+
+/**
+ * Utility class for Iterators
+ *
+ * @since 6.10.2
+ */
+public class Iterators {
+	/**
+	 * Create an iterator which traverses an array in reverse.
+	 *
+	 * @param array T[]
+	 * @return Iterator<T>
+	 */
+	@SuppressWarnings("AvoidObjectArrays")
+	public static <T> Iterator<T> reverseIterator(T[] array) {
+		return new Iterator<>() {
+			int index = array.length;
+
+			@Override
+			public boolean hasNext() {
+				return index > 0;
+			}
+
+			@Override
+			public T next() {
+				return array[--index];
+			}
+		};
+	}
+
+	/**
+	 * Make an iterable for easy use in modern for loops.
+	 *
+	 * @param iterator Iterator<T>
+	 * @return Iterable<T>
+	 */
+	public static <T> Iterable<T> iterable(Iterator<T> iterator) {
+		return new Iterable<>() {
+			@Override
+			public Iterator<T> iterator() {
+				return iterator;
+			}
+		};
+	}
+
+	private Iterators() {
+	}
+}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/io/SilentInputStream.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/io/SilentInputStream.java
new file mode 100644
index 0000000..8c2c61a
--- /dev/null
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/io/SilentInputStream.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2025 Thomas Wolf <twolf@apache.org> and others
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Distribution License v. 1.0 which is available at
+ * https://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+package org.eclipse.jgit.util.io;
+
+import java.io.FilterInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * An {@link InputStream} that swallows exceptions on {@link #close()}.
+ *
+ * @since 7.4
+ */
+public class SilentInputStream extends FilterInputStream {
+
+	private static final Logger LOG = LoggerFactory
+			.getLogger(SilentInputStream.class);
+
+	/**
+	 * Wraps an existing {@link InputStream}.
+	 *
+	 * @param in
+	 *            {@link InputStream} to wrap
+	 */
+	public SilentInputStream(InputStream in) {
+		super(in);
+	}
+
+	@Override
+	public void close() throws IOException {
+		try {
+			super.close();
+		} catch (IOException e) {
+			if (LOG.isDebugEnabled()) {
+				LOG.debug("Exception ignored while closing input stream", e); //$NON-NLS-1$
+			}
+		}
+	}
+}
diff --git a/pom.xml b/pom.xml
index e7f97e0..4f58388 100644
--- a/pom.xml
+++ b/pom.xml
@@ -120,17 +120,17 @@
 
     <jgit-last-release-version>7.3.0.202506031305-r</jgit-last-release-version>
     <ant-version>1.10.15</ant-version>
-    <apache-sshd-version>2.15.0</apache-sshd-version>
+    <apache-sshd-version>2.16.0</apache-sshd-version>
     <jsch-version>0.1.55</jsch-version>
     <jzlib-version>1.1.3</jzlib-version>
     <javaewah-version>1.2.3</javaewah-version>
     <junit-version>4.13.2</junit-version>
     <test-fork-count>1C</test-fork-count>
     <args4j-version>2.37</args4j-version>
-    <commons-compress-version>1.27.1</commons-compress-version>
+    <commons-compress-version>1.28.0</commons-compress-version>
     <osgi-core-version>6.0.0</osgi-core-version>
     <servlet-api-version>4.0.4</servlet-api-version>
-    <jetty-version>12.0.23</jetty-version>
+    <jetty-version>12.1.0</jetty-version>
     <japicmp-version>0.23.1</japicmp-version>
     <httpclient-version>4.5.14</httpclient-version>
     <httpcore-version>4.4.16</httpcore-version>
@@ -146,9 +146,9 @@
     <maven-compiler-plugin-version>3.14.0</maven-compiler-plugin-version>
     <plexus-compiler-version>2.13.0</plexus-compiler-version>
     <hamcrest-version>2.2</hamcrest-version>
-    <assertj-version>3.27.3</assertj-version>
+    <assertj-version>3.27.4</assertj-version>
     <jna-version>5.17.0</jna-version>
-    <byte-buddy-version>1.17.6</byte-buddy-version>
+    <byte-buddy-version>1.17.7</byte-buddy-version>
 
     <!-- Properties to enable jacoco code coverage analysis -->
     <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
@@ -1020,7 +1020,7 @@
       <dependency>
         <groupId>org.mockito</groupId>
         <artifactId>mockito-core</artifactId>
-        <version>5.18.0</version>
+        <version>5.19.0</version>
       </dependency>
 
       <dependency>
