History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: COR-749
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Blocker Blocker
Assignee: Unassigned
Reporter: Patrick Roemer
Votes: 0
Watchers: 0
Operations

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

Defragment does not correctly map String/Array addresses used in field index for inheritance hierarchies

Created: 03/Aug/07 01:37 PM   Updated: 22/Aug/07 07:45 PM
Component/s: None
Affects Version/s: None
Fix Version/s: Denmark - v6.3

Time Tracking:
Original Estimate: Not Specified
Remaining Estimate: 0h
Time Spent - 8.17h
Time Spent: 8.17h
Time Spent - 8.17h

Order: 1
Original IDS Estimate: 1
Resolution Date: 22/Aug/07 07:45 PM
Labels:
Participants: Patrick Roemer
Number of Attachments: 0
Number of Comments: 2


 Description  « Hide
When deciding whether to map String/Array addresses for defragmenting field indexes, defragment looks at the metadata for the class index it currently is processing. This may be a parent class which doesn't know about its child class' indexed fields, so defragment will fail to create mappings for those addresses and the field indexes will be broken.

Proposed fix:
- Read ObjectHeader in SecondPassCommand#processObjectSlot() and use the resulting most specific class metadata to decide whether addresses should be mapped.

Performance improvements:
- Pass Buffer on to ReaderPair#processCopy() so it isn't read twice.
- Cache information on whether to map addresses in a ClassMetadata -> boolean map within the defrag context

 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
Patrick Roemer - 03/Aug/07 06:06 PM
Needs to be ported back to 6.3 branch.

Patrick Roemer - 04/Aug/07 09:46 AM
Ported back to 6.3 branch.