Issue Details (XML | Word | Printable)

Key: NUCCORE-728
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Unassigned
Reporter: Daniel Baldes
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
DataNucleus Core

Detaching SortedSet fails / detach disrespects comparator-name extension

Created: 29/Jun/11 11:00 AM   Updated: 01/Aug/11 10:23 AM   Resolved: 29/Jun/11 12:22 PM
Component/s: None
Affects Version/s: 3.0.0.m5
Fix Version/s: 3.0.0.m6

File Attachments: 1. Text File comparator.patch (1.0 kB)


Forum Thread URL: http://www.datanucleus.org/servlet/forum/viewthread_thread,6752


 Description  « Hide
I got a class "Host", having a SortedSet property "interfaces". In metadata, I have specified the comparator-name extension for "interfaces". When I detach the host, I get the following exception:

java.lang.ClassCastException: xxx.Interface cannot be cast to java.lang.Comparable.

This is caused by org.datanucleus.store.types.sco.simple.SortedSet.detachCopy() instantiating a TreeSet without the defined comparator.

Patch following.

Sort Order: Ascending order - Click to sort in descending order
Daniel Baldes added a comment - 29/Jun/11 11:03 AM
Attached a patch against the trunk (currently 3.0.0m6)

Daniel Baldes added a comment - 29/Jun/11 11:06 AM
The patch changes detachCopy() so that it looks up the comparator extension and instantiates the detached TreeSet with that comparator, if defined. It does that in a similar way like the constructor of ...sco.backed.SortedSet.

Andy Jefferson added a comment - 29/Jun/11 12:22 PM
Thx for the patch. Also applies to TreeSet