diff --git a/.bazelrc b/.bazelrc index 8c3266121..e6c3dc6ab 100644 --- a/.bazelrc +++ b/.bazelrc @@ -30,6 +30,7 @@ build:remote17 --tool_java_runtime_version=remotejdk_17 test --build_tests_only test --test_output=errors +test --flaky_test_attempts=3 import %workspace%/tools/remote-bazelrc diff --git a/.gitignore b/.gitignore index 553ecac48..5306e4198 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ /.project +/org.eclipse.jgit.benchmarks/dependency-reduced-pom.xml /target infer-out bazel-* diff --git a/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/proxy/AbstractClientProxyConnector.java b/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/proxy/AbstractClientProxyConnector.java index a8e33af35..a05d6415f 100644 --- a/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/proxy/AbstractClientProxyConnector.java +++ b/org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/proxy/AbstractClientProxyConnector.java @@ -27,8 +27,8 @@ public abstract class AbstractClientProxyConnector implements StatefulProxyConnector { - private static final long DEFAULT_PROXY_TIMEOUT_MILLIS = TimeUnit.SECONDS - .toMillis(30L); + private static final long DEFAULT_PROXY_TIMEOUT_NANOS = TimeUnit.SECONDS + .toNanos(30L); /** Guards {@link #done} and {@link #bufferedCommands}. */ private final Object lock = new Object(); @@ -39,7 +39,7 @@ public abstract class AbstractClientProxyConnector private AtomicReference unregister = new AtomicReference<>(); - private long remainingProxyProtocolTime = DEFAULT_PROXY_TIMEOUT_MILLIS; + private long remainingProxyProtocolTime = DEFAULT_PROXY_TIMEOUT_NANOS; private long lastProxyOperationTime = 0L; @@ -85,12 +85,12 @@ public AbstractClientProxyConnector(@NonNull InetSocketAddress proxyAddress, * to initialize for */ protected void init(ClientSession session) { - remainingProxyProtocolTime = session.getLongProperty( + long millis = session.getLongProperty( StatefulProxyConnector.TIMEOUT_PROPERTY, - DEFAULT_PROXY_TIMEOUT_MILLIS); - if (remainingProxyProtocolTime <= 0L) { - remainingProxyProtocolTime = DEFAULT_PROXY_TIMEOUT_MILLIS; - } + 0); + remainingProxyProtocolTime = (millis > 0) + ? TimeUnit.MILLISECONDS.toNanos(millis) + : DEFAULT_PROXY_TIMEOUT_NANOS; if (session instanceof JGitClientSession) { JGitClientSession s = (JGitClientSession) session; unregister.set(() -> s.setProxyHandler(null)); @@ -115,12 +115,9 @@ protected long getTimeout() { if (last != 0L) { long elapsed = now - last; remaining -= elapsed; - if (remaining < 0L) { - remaining = 10L; // Give it grace period. - } + remainingProxyProtocolTime = remaining; } - remainingProxyProtocolTime = remaining; - return remaining; + return Math.max(remaining / 1_000_000L, 10L); // Give it grace period. } /** diff --git a/org.eclipse.jgit/.settings/.api_filters b/org.eclipse.jgit/.settings/.api_filters index e215f7aa3..b00ad4b22 100644 --- a/org.eclipse.jgit/.settings/.api_filters +++ b/org.eclipse.jgit/.settings/.api_filters @@ -50,6 +50,14 @@ + + + + + + + +