diff --git a/source/java/org/alfresco/repo/virtual/bundle/VirtualCheckOutCheckInServiceExtension.java b/source/java/org/alfresco/repo/virtual/bundle/VirtualCheckOutCheckInServiceExtension.java index 44f6003a9b..1371860dcc 100644 --- a/source/java/org/alfresco/repo/virtual/bundle/VirtualCheckOutCheckInServiceExtension.java +++ b/source/java/org/alfresco/repo/virtual/bundle/VirtualCheckOutCheckInServiceExtension.java @@ -144,7 +144,10 @@ public class VirtualCheckOutCheckInServiceExtension extends @Override public NodeRef cancelCheckout(NodeRef workingCopyNodeRef) { - return getTrait().cancelCheckout(virtualStore.materializeIfPossible(workingCopyNodeRef)); + NodeRef materialOriginalNode = getTrait().cancelCheckout(virtualStore.materializeIfPossible(workingCopyNodeRef)); + + return virtualizeOriginalIfNeeded(workingCopyNodeRef, + materialOriginalNode); } @Override diff --git a/source/test-java/org/alfresco/repo/virtual/bundle/VirtualCheckOutCheckInServiceExtensionTest.java b/source/test-java/org/alfresco/repo/virtual/bundle/VirtualCheckOutCheckInServiceExtensionTest.java index e629eeeeff..242604be7f 100644 --- a/source/test-java/org/alfresco/repo/virtual/bundle/VirtualCheckOutCheckInServiceExtensionTest.java +++ b/source/test-java/org/alfresco/repo/virtual/bundle/VirtualCheckOutCheckInServiceExtensionTest.java @@ -375,4 +375,16 @@ public class VirtualCheckOutCheckInServiceExtensionTest extends VirtualizationIn sourceAssocs.get(0).getSourceRef()); checkOutCheckInService.cancelCheckout(workingCopyVirtualContext); } + + public void test_ACE_4699() throws Exception + { + checkOutCheckInService.checkout(originalContentNodeRef); + NodeRef workingCopyVirtualContext = nodeService.getChildByName(node, + ContentModel.ASSOC_CONTAINS, + PROP_WORKING_COPY_NAME); + assertNotNull(workingCopyVirtualContext); + NodeRef cancelCheckoutNodeRef = checkOutCheckInService.cancelCheckout(workingCopyVirtualContext); + assertEquals(originalContentNodeRef, + cancelCheckoutNodeRef); + } }