From 3f2d97a83590a6479ef7dd8cc930b0f305cbf3a2 Mon Sep 17 00:00:00 2001 From: Britt Park Date: Tue, 15 May 2007 10:17:40 +0000 Subject: [PATCH] Allow forceCopy to work on DeletedNodes. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5679 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../org/alfresco/repo/avm/AVMRepository.java | 2 +- .../org/alfresco/repo/avm/AVMServiceTest.java | 17 +++++++++++++++++ .../org/alfresco/repo/avm/DeletedNodeImpl.java | 3 ++- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/source/java/org/alfresco/repo/avm/AVMRepository.java b/source/java/org/alfresco/repo/avm/AVMRepository.java index 8c0bad1b79..e1d4c93d27 100644 --- a/source/java/org/alfresco/repo/avm/AVMRepository.java +++ b/source/java/org/alfresco/repo/avm/AVMRepository.java @@ -2469,7 +2469,7 @@ public class AVMRepository } fLookupCache.onWrite(pathParts[0]); // Just force a copy if needed by looking up in write mode. - Lookup lPath = store.lookup(-1, pathParts[1], true, false); + Lookup lPath = store.lookup(-1, pathParts[1], true, true); if (lPath == null) { throw new AVMNotFoundException("Path not found."); diff --git a/source/java/org/alfresco/repo/avm/AVMServiceTest.java b/source/java/org/alfresco/repo/avm/AVMServiceTest.java index bcad2ab7d3..389473d47d 100644 --- a/source/java/org/alfresco/repo/avm/AVMServiceTest.java +++ b/source/java/org/alfresco/repo/avm/AVMServiceTest.java @@ -84,6 +84,23 @@ import org.alfresco.util.Pair; */ public class AVMServiceTest extends AVMServiceTestBase { + public void testForceCopyDeleted() + { + try + { + setupBasicTree(); + fService.removeNode("main:/a/b/c/foo"); + fService.createSnapshot("main", null, null); + AVMNodeDescriptor desc = fService.forceCopy("main:/a/b/c/foo"); + assertTrue(desc.isDeleted()); + } + catch (Exception e) + { + e.printStackTrace(); + fail(); + } + } + public void testLayerSnapshots() { try diff --git a/source/java/org/alfresco/repo/avm/DeletedNodeImpl.java b/source/java/org/alfresco/repo/avm/DeletedNodeImpl.java index 340dc06f27..6bdf04600c 100644 --- a/source/java/org/alfresco/repo/avm/DeletedNodeImpl.java +++ b/source/java/org/alfresco/repo/avm/DeletedNodeImpl.java @@ -83,8 +83,9 @@ public class DeletedNodeImpl extends AVMNodeImpl implements DeletedNode return fDeletedType; } + // TODO What happens when this is called? Does it muck anything up. /** - * This should never be called. + * This is only called rarely. */ public AVMNode copy(Lookup lPath) {