[ https://jira.duraspace.org/browse/DS-1122?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tim Donohue updated DS-1122: ---------------------------- Attachment: DS-1122-version2.patch Kevin, Thanks for the patch. I've created a very slightly modified version of it (see DS-1122-version2.patch), which changes the following: * Starts the 'bitstream_order' number at 0 (rather than 1), which is the same as how Bundle.setOrder() works * Tweaks the SQL query to use "MAX(bitstream_order)" as that should be a slightly faster query. Beyond that, it works great. I've also tested this with the AIP backup & restore and this fix also resolves all issues with restoring bitstream ordering from an AIP. I'll commit this slightly updated patch to Trunk & 1.8.x branch shortly for 1.8.2. > When adding a Bitstream to a Bundle, the 'bitstream_order' is always set to > the 'sequence_id' > --------------------------------------------------------------------------------------------- > > Key: DS-1122 > URL: https://jira.duraspace.org/browse/DS-1122 > Project: DSpace > Issue Type: Bug > Components: DSpace API > Affects Versions: 1.8.0, 1.8.1 > Reporter: Tim Donohue > Assignee: Tim Donohue > Fix For: 1.8.2 > > Attachments: Bundle.patch, DS-1122-version2.patch, > DS-1122_When_adding_a_Bitstream_to_a_Bundle,_the__bitstream_order__is_always_set_to_the_.patch > > > Currently, in the Bundle.addBitstream() method the 'bitstream_order' setting > is always set to the same value as the 'sequence_id'. > This makes a large assumption that these two fields should always be equal > for newly created bitstreams. > However, in scenarios where you are restoring an Item and its Bitstreams > (like via AIP Backup & Restore), this assumption falls flat. In 'restore' > scenarios, it's very possible you may want to restore the 'sequence_id' as 2 > while the 'bitstream_order' should be 1. Unfortunately, this becomes > problematic, as the 'addBitstream()' method will always assume > bitstream_order=sequence_id. > My proposal is to instead implement Bundle.addBitstream() so that it is > always *appending* the newly added bitstream to the end of the current list > of Bitstreams. So, instead it should set: > bitstream_order = bitstreams.size() > This will work fine for 'restore' scenarios, as Bitstreams are always > restored in order, so the bitstream_order may be restored to a different > value to the sequence_id. > A proposed patch to the Bundle class is attached. I've done some minimal > testing so far, but it seems stable. I have verified that with this patch in > place, I can now restore *both* an Item's bitstream_order and sequence_id to > different values (as necessary), via the AIP Backup & Restore tools. > I'd appreciate feedback on this approach. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://jira.duraspace.org/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira ------------------------------------------------------------------------------ Try before you buy = See our experts in action! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-dev2 _______________________________________________ Dspace-devel mailing list Dspace-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dspace-devel