When moving metadata, make sure virtual metadata is handled correctly

This commit is contained in:
Ben Bosman
2020-02-18 14:41:48 +01:00
parent 243b0c077f
commit cc2534ddd3

View File

@@ -41,7 +41,11 @@ public abstract class MetadataValueRemovePatchOperation<DSO extends DSpaceObject
String[] metadata = Utils.tokenize(target);
List<MetadataValue> mm = getDSpaceObjectService().getMetadata(source, metadata[0], metadata[1], metadata[2],
Item.ANY);
if (index != -1) {
getDSpaceObjectService().removeMetadataValues(context, source, Arrays.asList(mm.get(index)));
} else {
getDSpaceObjectService().clearMetadata(context, source, metadata[0], metadata[1], metadata[2], Item.ANY);
}
}
protected abstract DSpaceObjectService<DSO> getDSpaceObjectService();