Skip to content

Commit 137a08d

Browse files
committed
Revert "Enhance timeout handling with nanosecond precision"
This reverts commit 203a412.
1 parent 3806bdc commit 137a08d

File tree

1 file changed

+7
-10
lines changed

1 file changed

+7
-10
lines changed

src/main/java/com/swiftmq/jms/v750/MessageConsumerImpl.java

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
import javax.jms.IllegalStateException;
3434
import javax.jms.*;
3535
import java.util.List;
36-
import java.util.concurrent.TimeUnit;
3736
import java.util.concurrent.atomic.AtomicBoolean;
3837
import java.util.concurrent.atomic.AtomicInteger;
3938
import java.util.concurrent.locks.Lock;
@@ -370,16 +369,14 @@ Message receiveMessage(boolean block, long timeout) throws JMSException {
370369
if (timeout == 0) {
371370
waiter.doWait();
372371
} else {
373-
long deadline = System.nanoTime() + TimeUnit.MILLISECONDS.toNanos(timeout);
374-
long remaining;
375-
376-
while ((remaining = deadline - System.nanoTime()) > 0 &&
377-
messageCache.getSize() == 0 &&
378-
fillCachePending.get() &&
379-
!cancelled.get() &&
380-
!isClosed()) {
381-
waiter.doWait(TimeUnit.NANOSECONDS.toMillis(remaining));
372+
long to = timeout;
373+
do {
374+
long startWait = System.currentTimeMillis();
375+
waiter.doWait(to);
376+
long delta = System.currentTimeMillis() - startWait;
377+
to -= delta;
382378
}
379+
while (to > 0 && messageCache.getSize() == 0 && fillCachePending.get() && !cancelled.get() && !isClosed());
383380
}
384381
} else {
385382
if (fillCachePending.get() && receiveNoWaitFirstCall.get()) {

0 commit comments

Comments
 (0)