Uploaded image for project: 'Dev - Nexus Repo'
  1. Dev - Nexus Repo
  2. NEXUS-21682

Update Joda-Time to 2.10.4 in order to update tzdata to IANA 2019c

    XMLWordPrintable

    Details

      Description

      Here in Brazil we will not have daylight saving time for 2019 year. This situation was reflected on the 2019c version of the IANA timezone database. This version of the database was added to version 2.10.4 of Joda Time].

      In order to avoid any potential problem, it is necessary to update the the Joda-time bundle in the Nexus product and Docker image.


      Review

      NXRM latest release 3.19.1, depends on joda-time 2.9.5.

      NXRM uses joda time API internally in some places, but the full scope of timezone change impact may be limited. This decision to use joda time was made back when the official Java Date APIs ( JSR-310 ) were not in wide use and existing code compatible with Java 7 was re-used from other projects.

      Quoting this FAQ,

      Joda-Time releases only occur infrequently. But time-zone changes happen all the time. As such, it may well be that the rules are out of date.

      Between the Joda-Time releases, it is your responsibility to update the jar file with the latest time-zone rules. You must update both the JDK and Joda-Time rules to the same version at the same time to avoid problems. See the update time-zone rules guide for more details.

      NXRM does not contain the most recent timezone files for Joda time because we have not kept up to date with the latest joda-time releases . According to the FAQ, that is not necessarily all that is involved to maintain timezone consistency.

      There is also this FAQ

      Why is the offset for a time-zone different to the JDK?
      There are two main reasons for this.

      The first reason is that both the JDK and Joda-Time have time-zone data files. It is important to keep both up to date and in sync if you want to compare the offset between the two.

      The second reason affects date-times before the modern time-zone system was introduced. The time-zone data is obtained from the time-zone database. The database contains information on "Local Mean Time" (LMT) which is the local time that would have been observed at the location following the Sun's movements.

      Joda-Time uses the LMT information for all times prior to the first time-zone offset being chosen in a location. By contrast, the JDK ignores the LMT information. As such, the time-zone offset returned by the JDK and Joda-Time are different for date-times before the modern time-zone system.

       Expected

      Internally move to using APIs that more consistently and easily manage timezone data, prefer to use only one source. This could mean no longer depending on Joda time APIs - this is recommended by Joda Time themselves now under Why Joda Time?

      Note that from Java SE 8 onwards, users are asked to migrate to java.time (JSR-310) - a core part of the JDK which replaces this project.

      In the least, update to a version of joda-time that has a more recent TZ data.
       

       

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              oshiyanbade Olu Shiyanbade
              Reporter:
              louzadod Dario Louzado
              Last Updated By:
              Michael Prescott Michael Prescott
              Team:
              NXRM - Groot
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:
                Date of First Response:

                  tigCommentSecurity.panel-title