[
https://issues.apache.org/jira/browse/AMQ-6031?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Robbie Gemmell updated AMQ-6031:
--------------------------------
Affects Version/s: 5.12.0
Fix Version/s: 5.12.2
> AMQP: use System.nanoTime() when deriving time to tick the transport with for
> idle-timeout handling
> ---------------------------------------------------------------------------------------------------
>
> Key: AMQ-6031
> URL: https://issues.apache.org/jira/browse/AMQ-6031
> Project: ActiveMQ
> Issue Type: Bug
> Components: AMQP
> Affects Versions: 5.12.0, 5.12.1
> Reporter: Robbie Gemmell
> Assignee: Robbie Gemmell
> Fix For: 5.13.0, 5.12.2
>
>
> 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 QPIDJMS-136, 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)