Item marked NOT in_archive yields inconsistent METS packages
------------------------------------------------------------

                 Key: DS-751
                 URL: https://jira.duraspace.org/browse/DS-751
             Project: DSpace
          Issue Type: Bug
          Components: DSpace API
    Affects Versions: 1.7.0
            Reporter: Mark H. Wood
            Priority: Critical


When packaging an object and its dependents (-a), the presence of items with 
in_archive = false causes dissemination of item packages claiming parentage by 
collections which do not claim them as children.  Ingestion of such a package 
set crashes the packager with an UnsupportedOperationException.

AbstractPackageDisseminator.disseminateAll() first calls disseminate() on the 
current object at around line 85 and then recurses over its children.  In the 
case of a Collection, it calls Collection.getAllItems() near line 112, which 
returns all child items, in_archive or not.  For a METS package, disseminate is 
defined in AbstractMetsDisseminator.  In 
AbstractMetsDisseminator.makeManifest(), at around line 983, 
Collection.getItems() is used to form the parent Collection's manifest.  This 
yields only Items which are in_archive.  So we first export all child Items 
with manifests pointing to the parent Collection, and then a Collection 
claiming only a subset of those Items as children.  Ingestion of an unclaimed 
child while restoring this set of packages is correctly diagnosed as an error 
and the restoration fails.

I am uncertain as to which was meant:  all children or only in_archive 
children, but the manifest builder and the recursion must use the same one.

-- 
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

        

------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today
http://p.sf.net/sfu/msIE9-sfdev2dev
_______________________________________________
Dspace-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dspace-devel

Reply via email to