diff --git a/sshd-core/src/main/java/org/apache/sshd/client/channel/AbstractClientChannel.java b/sshd-core/src/main/java/org/apache/sshd/client/channel/AbstractClientChannel.java index fd12580dee..16ea1de72a 100644 --- a/sshd-core/src/main/java/org/apache/sshd/client/channel/AbstractClientChannel.java +++ b/sshd-core/src/main/java/org/apache/sshd/client/channel/AbstractClientChannel.java @@ -27,7 +27,6 @@ import java.util.EnumSet; import java.util.Objects; import java.util.Set; -import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; @@ -262,6 +261,7 @@ public Set waitFor(Collection mask, long if (timeout > 0L) { long now = System.currentTimeMillis(); long usedTime = now - startTime; + remWait = timeout - usedTime; if ((usedTime >= timeout) || (remWait <= 0L)) { if (traceEnabled) { log.trace("waitFor({}) call timeout {}/{} for mask={}: {}", @@ -290,14 +290,6 @@ public Set waitFor(Collection mask, long if (traceEnabled) { log.trace("waitFor({}) lock notified on channel after {} nanos", this, nanoDuration); } - - if (timeout > 0L) { - long waitDuration = TimeUnit.MILLISECONDS.convert(nanoDuration, TimeUnit.NANOSECONDS); - if (waitDuration <= 0L) { - waitDuration = 123L; - } - remWait -= waitDuration; - } } catch (InterruptedException e) { long nanoEnd = System.nanoTime(); long nanoDuration = nanoEnd - nanoStart; diff --git a/sshd-core/src/main/java/org/apache/sshd/client/session/ClientSessionImpl.java b/sshd-core/src/main/java/org/apache/sshd/client/session/ClientSessionImpl.java index cb5b298dc4..f4e3c576d2 100644 --- a/sshd-core/src/main/java/org/apache/sshd/client/session/ClientSessionImpl.java +++ b/sshd-core/src/main/java/org/apache/sshd/client/session/ClientSessionImpl.java @@ -28,7 +28,6 @@ import java.util.Map; import java.util.Objects; import java.util.Set; -import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; @@ -266,6 +265,7 @@ public Set waitFor(Collection mask, long if (timeout > 0L) { long now = System.currentTimeMillis(); long usedTime = now - startTime; + remWait = timeout - usedTime; if ((usedTime >= timeout) || (remWait <= 0L)) { if (traceEnabled) { log.trace("waitFor({}) call timeout {}/{} for mask={}: {}", @@ -294,14 +294,6 @@ public Set waitFor(Collection mask, long if (traceEnabled) { log.trace("waitFor({}) Lock notified after {} nanos", this, nanoDuration); } - - if (timeout > 0L) { - long waitDuration = TimeUnit.MILLISECONDS.convert(nanoDuration, TimeUnit.NANOSECONDS); - if (waitDuration <= 0L) { - waitDuration = 123L; - } - remWait -= waitDuration; - } } catch (InterruptedException e) { long nanoEnd = System.nanoTime(); long nanoDuration = nanoEnd - nanoStart;