diff --git a/source/java/org/alfresco/repo/avm/AVMServiceLocalTest.java b/source/java/org/alfresco/repo/avm/AVMServiceLocalTest.java index ae0ed053f3..cd79c6091a 100644 --- a/source/java/org/alfresco/repo/avm/AVMServiceLocalTest.java +++ b/source/java/org/alfresco/repo/avm/AVMServiceLocalTest.java @@ -2982,6 +2982,14 @@ public class AVMServiceLocalTest extends TestCase diffs = fSyncService.compare(-1, "mainB--layer:/a", -1, "mainB:/a", null); assertEquals("[mainB--layer:/a/foo[-1] > mainB:/a/foo[-1]]", diffs.toString()); + /* + // For testing ALF-4800 (testLayeredFileDelete1 / testLayeredFileDelete2 - error in dispatchUpdate) + // In addition to sleep below, increase frequency of OrphanReaper (eg. set startDelay/repeatInterval to 2000/500 msecs) + logger.debug("start sleep"); + Thread.sleep(30000); + logger.debug("finish sleep"); + */ + // ETHREEOH-2844 fSyncService.update(diffs, null, false, false, false, false, "one", "one"); fSyncService.flatten("mainB--layer:/a", "mainB:/a"); @@ -3105,6 +3113,14 @@ public class AVMServiceLocalTest extends TestCase diffs = fSyncService.compare(-1, "mainB--layer:/a", -1, "mainB:/a", null); assertEquals("[mainB--layer:/a/foo[-1] > mainB:/a/foo[-1]]", diffs.toString()); + /* + // For testing ALF-4800 (testLayeredFileDelete1 / testLayeredFileDelete2 - error in dispatchUpdate) + // In addition to sleep below, increase frequency of OrphanReaper (eg. set startDelay/repeatInterval to 2000/500 msecs) + logger.debug("start sleep"); + Thread.sleep(30000); + logger.debug("finish sleep"); + */ + // ETHREEOH-2829 fSyncService.update(diffs, null, false, false, false, false, "one", "one"); fSyncService.flatten("mainB--layer:/a", "mainB:/a"); diff --git a/source/java/org/alfresco/repo/avm/AVMSyncServiceImpl.java b/source/java/org/alfresco/repo/avm/AVMSyncServiceImpl.java index 6597dc9b06..2417a7bf48 100644 --- a/source/java/org/alfresco/repo/avm/AVMSyncServiceImpl.java +++ b/source/java/org/alfresco/repo/avm/AVMSyncServiceImpl.java @@ -812,7 +812,8 @@ public class AVMSyncServiceImpl implements AVMSyncService } } - if (srcDesc.isDeleted() && (srcDesc.getDeletedType() == AVMNodeType.LAYERED_DIRECTORY)) + if (srcDesc.isDeleted() && + ((srcDesc.getDeletedType() == AVMNodeType.LAYERED_DIRECTORY) || (srcDesc.getDeletedType() == AVMNodeType.LAYERED_FILE))) { Integer diff = compareLayeredCommonAncestor(common, srcDesc, dstDesc); if (diff != null) @@ -820,7 +821,8 @@ public class AVMSyncServiceImpl implements AVMSyncService return diff; } } - else if (dstDesc.isDeleted() && (dstDesc.getDeletedType() == AVMNodeType.LAYERED_DIRECTORY)) + else if (dstDesc.isDeleted() && + ((dstDesc.getDeletedType() == AVMNodeType.LAYERED_DIRECTORY) || (dstDesc.getDeletedType() == AVMNodeType.LAYERED_FILE))) { Integer diff = compareLayeredCommonAncestor(common, dstDesc, srcDesc); if (diff != null) @@ -1054,7 +1056,7 @@ public class AVMSyncServiceImpl implements AVMSyncService { diff = diffType; } - else if (common.isLayeredFile()) + else if (common.isLayeredFile() || (compareAncNode.getType() == AVMNodeType.LAYERED_FILE)) { // TODO review (alongside createSnapshot+COW) diff = compareLayeredCommonAncestor(common, compareAncNode.getId(), diffType);