[dna-issues] [JBoss JIRA] Resolved: (DNA-491) JodaDateTime Is Using Overly-Strict Equality Test

Brian Carothers (JIRA) jira-events at lists.jboss.org
Mon Jul 13 11:04:29 EDT 2009


     [ https://jira.jboss.org/jira/browse/DNA-491?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Brian Carothers resolved DNA-491.
---------------------------------

    Fix Version/s: 0.6
       Resolution: Done
         Assignee: Brian Carothers


Committed patch to resolve defect.

> JodaDateTime Is Using Overly-Strict Equality Test
> -------------------------------------------------
>
>                 Key: DNA-491
>                 URL: https://jira.jboss.org/jira/browse/DNA-491
>             Project: DNA
>          Issue Type: Bug
>    Affects Versions: 0.5
>            Reporter: Brian Carothers
>            Assignee: Brian Carothers
>             Fix For: 0.6
>
>         Attachments: DNA-491.patch
>
>
> The JodaDateTime class, the default DateTime implementation for DNA, uses JODA DateTimes internally to represent instants in time in a time zone-neutral, machine portable fashion.  By default, the equals method for JodaDateTime is using the DateTime.equals(Object) method[1].  This method checks that both objects represent equivalent logical instants AND have the exact same time zones AND are based on the same Chronology[2].  This implies that a date time representing 2:00 PM EST would not be ".equals" to another date time representing 1:00 PM CST on the same date, even though both represent the same logical instant.  Additionally, DNA doesn't specify chronologies, leaving JODA to infer the chronology based on the date source.
> I recommend that we shift from using DateTime.equals(Object) to DateTime.isEqual(ReadableInstant)[3] internally to avoid these problems.  This issue keeps the JPA connector from properly storing/reloading date properties on the TCK test.
> [1] - http://joda-time.sourceforge.net/api-release/org/joda/time/base/AbstractInstant.html#equals(java.lang.Object)
> [2] - JODA Chronologies are basically types of calendar like ISO8660, Gregorian/Julian, etc.
> [3] - http://joda-time.sourceforge.net/api-release/org/joda/time/base/AbstractInstant.html#isEqual(org.joda.time.ReadableInstant)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the dna-issues mailing list