METS Disseminator never resets its counter for METS @ID attributes
------------------------------------------------------------------

                 Key: DS-931
                 URL: https://jira.duraspace.org/browse/DS-931
             Project: DSpace
          Issue Type: Bug
          Components: DSpace API
    Affects Versions: 1.7.2, 1.7.1, 1.7.0
            Reporter: Tim Donohue
            Assignee: Tim Donohue
             Fix For: 1.8.0


The org.dspace.content.packager.AbstractMETSDisseminator class never resets the 
internal counter that it uses to assign METS @ID attribute values.

Although this is not an issue when disseminating METS files (as all @ID values 
still end up unique), it can be of issue for AIP dissemination (which uses the 
METS Disseminator).

During AIP dissemination, we want the generated METS file to always be 
identical (same checksum) when the DSpace object itself is unchanged.  However, 
because the @ID attribute counter never resets itself, it's possible (though 
rare) to have a slightly different METS file generated (for an unchanged 
object) which only has different @ID values.

For example:
(1) Disseminate a METS file for an object -- initially the @ID values count up 
from 1
(2) If you generate another METS file for that same unchanged object from that 
same instance of AbstractMETSDisseminator, then the @ID values will *NOT* begin 
at 1...instead they will continue incrementing from the last @ID value of the 
last METS dissemination.  Even though the Object itself is unchanged in DSpace, 
the METS file will be slightly different, since the @ID attributes will no 
longer be identical.  Again, for AIP generation we want the METS file to remain 
identical (no matter how many times you generate it), so that the AIP itself is 
identical when and object is unchanged.

Hopefully that example makes sense...admittedly this is a slightly confusing 
issue, but is easy to resolve.  The resolution is to ensure that the counter 
which is used for @ID attributes is always reset (back to 1) each time the 
disseminate() method is called.  This ensures, that for each new METS file 
dissemination the counter always begins from 1.

I'll apply a quick fix to Trunk shortly, so that this issue is resolved for 
DSpace 1.8.0.

(This bug was encountered as part of the DS-876 Replication Task Suite work)

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

        

------------------------------------------------------------------------------
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev
_______________________________________________
Dspace-devel mailing list
Dspace-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dspace-devel

Reply via email to