You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Regis Desgroppes (JIRA)" <ji...@apache.org> on 2009/01/09 11:18:59 UTC

[jira] Updated: (LANG-478) StopWatch does not resist to system time changes

     [ https://issues.apache.org/jira/browse/LANG-478?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Regis Desgroppes updated LANG-478:
----------------------------------

    Description: 
org.apache.commons.lang.time.StopWatch seems to be relying on wall clock, i.e. by calling java.lang.System.currentTimeMillis() to sample current time.

When a system time change occurs (user action, NTP synchronization...) between 2 calls to StopWatch.getTime(), the difference between the 2 samples is wrong: the measured duration may noticeably differ from the real one. Moreover, if the system time change consists in a backward adjustment, the difference may be negative.

In order to make StopWatch resistant to system time changes, would it be possible to use the process time, i.e. by making implementation calling java.lang.System.nanoTime() -multiplied by 1000, of course.

Thanks a lot,
Regis.


  was:
org.apache.commons.lang.time.StopWatch seems to be relying on wall clock, i.e. by calling java.lang.System.currentTimeMillis() to sample current time.

When a system time change occurs (user action, NTP synchronization...) between 2 calls to StopWatch.getTime(), the difference between the 2 samples is wrong: the measured duration may noticeably differ from the real one. Moreover, if the system time change consists in a backward adjustment, the difference may be negative.

In order to make StopWatch resistant to system time changes, would it be possible to use the process time, i.e. by making implementation calling java.lang.System.nanoTime() -multiplied by 1000, of course-.

Thanks a lot,
Regis.



> StopWatch does not resist to system time changes
> ------------------------------------------------
>
>                 Key: LANG-478
>                 URL: https://issues.apache.org/jira/browse/LANG-478
>             Project: Commons Lang
>          Issue Type: Bug
>    Affects Versions: 2.3
>         Environment: all operating systems.
>            Reporter: Regis Desgroppes
>
> org.apache.commons.lang.time.StopWatch seems to be relying on wall clock, i.e. by calling java.lang.System.currentTimeMillis() to sample current time.
> When a system time change occurs (user action, NTP synchronization...) between 2 calls to StopWatch.getTime(), the difference between the 2 samples is wrong: the measured duration may noticeably differ from the real one. Moreover, if the system time change consists in a backward adjustment, the difference may be negative.
> In order to make StopWatch resistant to system time changes, would it be possible to use the process time, i.e. by making implementation calling java.lang.System.nanoTime() -multiplied by 1000, of course.
> Thanks a lot,
> Regis.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.