[hibernate-issues] [Hibernate-JIRA] Created: (HHH-4060) Dates being converted to Timestamps confuse CollectionUpdateAction/PersistentSet

Phillip Henry (JIRA) noreply at atlassian.com
Sat Jul 25 11:54:11 EDT 2009


Dates being converted to Timestamps confuse CollectionUpdateAction/PersistentSet
--------------------------------------------------------------------------------

                 Key: HHH-4060
                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-4060
             Project: Hibernate Core
          Issue Type: Bug
          Components: core
         Environment: Hibernate Trunk, all databases
            Reporter: Phillip Henry
         Attachments: timestamp_date_bug.zip

If an object that has a Set of java.util.Dates is persisted then retrieved, these element become java.sql.Timestamps. This is fine but PersistentSet then treats Sets of Dates and Timetstamps inconsistently.

Eg, if the collection is cleared, this results in CollectionUpdateAction thinking the elements need to be deleted from the DB (see how PersistentSet.getDeletes uses Set.contains() when comparing Dates and Timestamps - leading to a call to Timestamp.equals which Date fails). 

But if the java.util.Date elements (the same that we started with) are then re-added, CollectionUpdateAction thinks that they are the same as the ones the Set once contained (see how PersistentSet.needsInserting compares the re-added elements with its snapshot - leading to a call to Date.equals which Timestamp passes) and therefore does not think it needs to persist them. 

The result is that no date elements at all are left in the DB by the time the transaction commits.

I've attached a test that demonstrates the problem.

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

        


More information about the hibernate-issues mailing list