Delete item from harvested_item as well.

This commit is contained in:
dylan
2016-03-14 17:49:01 +01:00
parent 0f695096e0
commit cd03d3a55f

View File

@@ -25,6 +25,9 @@ import org.dspace.core.LogManager;
import org.dspace.eperson.EPerson; import org.dspace.eperson.EPerson;
import org.dspace.eperson.Group; import org.dspace.eperson.Group;
import org.dspace.event.Event; 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.IdentifierException;
import org.dspace.identifier.service.IdentifierService; import org.dspace.identifier.service.IdentifierService;
import org.dspace.versioning.service.VersioningService; import org.dspace.versioning.service.VersioningService;
@@ -578,6 +581,12 @@ public class ItemServiceImpl extends DSpaceObjectServiceImpl<Item> implements It
@Override @Override
public void delete(Context context, Item item) throws SQLException, AuthorizeException, IOException { public void delete(Context context, Item item) throws SQLException, AuthorizeException, IOException {
authorizeService.authorizeAction(context, item, Constants.DELETE); 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.getCollections().clear();
item.setOwningCollection(null); item.setOwningCollection(null);
rawDelete(context,item); rawDelete(context,item);