diff --git a/dspace-api/src/main/java/org/dspace/handle/HandleServiceImpl.java b/dspace-api/src/main/java/org/dspace/handle/HandleServiceImpl.java index 5eb247c794..c03a8ef42f 100644 --- a/dspace-api/src/main/java/org/dspace/handle/HandleServiceImpl.java +++ b/dspace-api/src/main/java/org/dspace/handle/HandleServiceImpl.java @@ -231,7 +231,10 @@ public class HandleServiceImpl implements HandleService // can verify during a restore whether the same *type* of resource // is reusing this handle! handle.setDSpaceObject(null); + + //Also remove the handle from the DSO list to keep a consistent model dso.getHandles().remove(handle); + handleDAO.save(context, handle); if(log.isDebugEnabled()) diff --git a/dspace-api/src/test/java/org/dspace/content/VersioningTest.java b/dspace-api/src/test/java/org/dspace/content/VersioningTest.java index f1bfe1c8b4..6b495dae8e 100644 --- a/dspace-api/src/test/java/org/dspace/content/VersioningTest.java +++ b/dspace-api/src/test/java/org/dspace/content/VersioningTest.java @@ -166,9 +166,10 @@ public class VersioningTest extends AbstractUnitTest { @Test public void testVersionDelete() throws Exception { context.turnOffAuthorisationSystem(); + String handle = versionedItem.getHandle(); versionService.removeVersion(context, versionedItem); assertThat("Test_version_delete", itemService.find(context, versionedItem.getID()), nullValue()); - assertThat("Test_version_handle_delete", handleService.resolveToObject(context, versionedItem.getHandle()), nullValue()); + assertThat("Test_version_handle_delete", handleService.resolveToObject(context, handle), nullValue()); context.restoreAuthSystemState(); } }