AbstractMETSIngester creates an item before adding descriptive metadata
-----------------------------------------------------------------------

                 Key: DS-821
                 URL: https://jira.duraspace.org/browse/DS-821
             Project: DSpace
          Issue Type: Bug
          Components: DSpace API
    Affects Versions: 1.7.0
            Reporter: Stuart Lewis
            Priority: Major
             Fix For: 1.7.1


When items are ingested via SWORD (and anything that uses the METS package 
ingester mechanism), the 'thanks for your submission' email shows the title of 
the item to be untitled. This has been tracked down to changes made in 1.7 to 
introduce community and collection AIP restoration in 
AbstractMETSIngester.java.  The item is created before descriptive metadata is 
added.  This means at the time the email is sent, no descriptive metadata has 
yet been added, hence the 'untitled'.


IRC log:


[08:32am] stuartlewis: With all the packager changes in 1.7, has the order of 
item creation been changed?  It looks like items are now created and installed 
(and therefore 'thanks for your submission' emails are sent), and following 
that, the package opened and the metadata etc is added to the item.  Previously 
I think it all happened in one go, and the item was created at the end of the 
process. I think this might be the culprit to Jose's SWORD email problem in 
dspace-tech. 
[08:35am] tdonohue: hi stuartlewis -- yea, i got a minute
[08:36am] tdonohue: so, can you point me at the code/classes you are looking 
at?  I don't recall this process changing, but maybe that will help
[08:37am] stuartlewis: AbstractMETSIngester
[08:37am] stuartlewis: ingestObject method
[08:38am] tdonohue: just a sec, pulling that up now
[08:38am] stuartlewis: Just looking for some line numbers
[08:38am] stuartlewis: Line 429 calls:
[08:38am] stuartlewis: dso = PackageUtils.createDSpaceObject(context, parent,
[08:38am] stuartlewis:                     type, handle, params);
[08:39am] grahamtriggs: Actually, the offending line would be PackageUtils, 
Line 477
[08:39am] grahamtriggs:                 // Finish creating item with specified 
handle
[08:39am] grahamtriggs:                 // (this will either install item 
immediately or start a workflow, based on params)
[08:39am] grahamtriggs:                 dso = finishCreateItem(context, wsi, 
handle, params);
[08:39am] stuartlewis: Yep - was just tracing it through to there.
[08:39am] stuartlewis: Then it bounces back, and then in Step 5, descriptive 
metadata is added.
[08:40am] stuartlewis: So the 'thanks' email is sent before the descriptive 
metadata has been set.
[08:40am] stuartlewis: (I think!)
[08:41am] tdonohue: hmmm...yea, I think you may be right about this.  
Obviously, wasn't my intention to change that processing...
[08:41am] tdonohue: i'm digging around more...trying to determine *why* I did 
things this way (this was all part of the AIP work, obviously)
[08:42am] grahamtriggs: you did it to get a DSpaceObject! 
[08:43am] tdonohue: yea, you're right -- I needed a DSpaceObject in order to 
deal with ingest of Community, Collection or Item in a generic fashion.
[08:43am] tdonohue: unfortunately, WorkspaceItem is *not* a DSpaceObject, so I 
needed to obtain one
[08:44am] tdonohue: (i.e. it's a result of our semi-backwards datamodel, where 
not everything is a DSpaceObject)
[08:48am] tdonohue: wait -- where is the code that sends the email 
notifications?  why am I not finding that in InstallItem?  (sorry, I'm 
forgetful today)
[08:48am] tdonohue: nevermind -- found it... it's an event
[08:48am] tdonohue: // Notify interested parties of newly archived Item
[08:48am] tdonohue:         c.addEvent(new Event(Event.INSTALL, Constants.ITEM, 
item.getID(),
[08:48am] tdonohue:                 item.getHandle()));
[08:50am] tdonohue: so...this is definitely a bug. I'm not sure how best to fix 
it though off top of my head, as it's unfortunately very specific to Items, and 
AbstractMETSIngester needs to now support Community & Collection as well.
[08:51am] stuartlewis: Shall I stick it in JIRA for now?
[08:51am] tdonohue: definitely put it in JIRA.  we need to fix this in 1.7.1, 
I'd say.
[08:51am] stuartlewis: OK - will do.
[08:53am] grahamtriggs: well, WorkspaceItem wraps a DSpaceObject - the storage 
for anything done in the workspace is the Item itself. So, you ought to be able 
to treat workspace [items] as DSpaceObjects - whether that is making them one 
or giving access to the internal object

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

        

------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Dspace-devel mailing list
Dspace-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dspace-devel

Reply via email to