Robbie Gemmell created QPIDJMS-136:
--------------------------------------
Summary: use System.nanoTime() when deriving time to tick the
transport with for idle-timeout handling
Key: QPIDJMS-136
URL: https://issues.apache.org/jira/browse/QPIDJMS-136
Project: Qpid JMS
Issue Type: Bug
Components: qpid-jms-client
Affects Versions: 0.6.0
Reporter: Robbie Gemmell
Assignee: Robbie Gemmell
Fix For: 0.7.0
The sending of empty AMQP heartbeating frames to satisfy the remote peers
advertised idle-timeout, and closure of the connection if no frames are
received from a peer to satisfy our local idle-timeout, are handled by protons
Transport#tick() method. This method takes the current time as an argument and
determines what (if any) actions should be undertaken now, then returns the
next point at which further processing is required. In order to faciliate this
the last 'current time' the method was called with is saved between calls.
As with QPID-6698, we should update our usage of the proton Transport#tick()
method to use a monotonic time, derived from System.nanoTime(), rather than a
wall time from System.currentTimeMillis(), so that clock changes between these
points dont lead to incorrect behaviour (e.g not sending a required frame, or
thinking a frame hasnt been received that should have been).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]