From cd03d3a55ffb42f1e540dcc4592f9397c65d826b Mon Sep 17 00:00:00 2001 From: dylan Date: Mon, 14 Mar 2016 17:49:01 +0100 Subject: [PATCH] Delete item from harvested_item as well. --- .../main/java/org/dspace/content/ItemServiceImpl.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/dspace-api/src/main/java/org/dspace/content/ItemServiceImpl.java b/dspace-api/src/main/java/org/dspace/content/ItemServiceImpl.java index 4cbfbed4b3..10adb1ff5a 100644 --- a/dspace-api/src/main/java/org/dspace/content/ItemServiceImpl.java +++ b/dspace-api/src/main/java/org/dspace/content/ItemServiceImpl.java @@ -25,6 +25,9 @@ import org.dspace.core.LogManager; import org.dspace.eperson.EPerson; import org.dspace.eperson.Group; import org.dspace.event.Event; +import org.dspace.harvest.HarvestedItem; +import org.dspace.harvest.factory.HarvestServiceFactory; +import org.dspace.harvest.service.HarvestedItemService; import org.dspace.identifier.IdentifierException; import org.dspace.identifier.service.IdentifierService; import org.dspace.versioning.service.VersioningService; @@ -578,9 +581,15 @@ public class ItemServiceImpl extends DSpaceObjectServiceImpl implements It @Override public void delete(Context context, Item item) throws SQLException, AuthorizeException, IOException { authorizeService.authorizeAction(context, item, Constants.DELETE); + + // Also delete the item if it appears in a harvested collection. + HarvestedItemService harvestedItemService = HarvestServiceFactory.getInstance().getHarvestedItemService(); // autowire this. + HarvestedItem hi = harvestedItemService.find(context, item); + harvestedItemService.delete(context,hi); + item.getCollections().clear(); item.setOwningCollection(null); - rawDelete(context, item); + rawDelete(context,item); } @Override