diff --git a/source/java/org/alfresco/repo/avm/AVMCrawlTestP.java b/source/java/org/alfresco/repo/avm/AVMCrawlTestP.java index f91fec6d1e..122999ab8d 100644 --- a/source/java/org/alfresco/repo/avm/AVMCrawlTestP.java +++ b/source/java/org/alfresco/repo/avm/AVMCrawlTestP.java @@ -35,9 +35,9 @@ public class AVMCrawlTestP extends AVMServiceTestBase */ public void testCrawl() { - int n = 2; // Number of Threads. - int m = 4; // How many multiples of content to start with. - long runTime = 600000; // 5 minutes + int n = 8; // Number of Threads. + int m = 32; // How many multiples of content to start with. + long runTime = 21600000; // 6 hours. fService.purgeAVMStore("main"); BulkLoader loader = new BulkLoader(); loader.setAvmService(fService); diff --git a/source/java/org/alfresco/repo/avm/LayeredDirectoryNodeImpl.java b/source/java/org/alfresco/repo/avm/LayeredDirectoryNodeImpl.java index 1dc2c39ab3..91368d00f2 100644 --- a/source/java/org/alfresco/repo/avm/LayeredDirectoryNodeImpl.java +++ b/source/java/org/alfresco/repo/avm/LayeredDirectoryNodeImpl.java @@ -284,15 +284,11 @@ class LayeredDirectoryNodeImpl extends DirectoryNodeImpl implements LayeredDirec ChildEntry existing = AVMDAOs.Instance().fChildEntryDAO.get(key); if (existing != null) { - existing.setChild(node); - AVMDAOs.Instance().fChildEntryDAO.update(existing); - } - else - { - ChildEntry entry = new ChildEntryImpl(key, node); - AVMDAOs.Instance().fAVMNodeDAO.flush(); - AVMDAOs.Instance().fChildEntryDAO.save(entry); + AVMDAOs.Instance().fChildEntryDAO.delete(existing); } + ChildEntry entry = new ChildEntryImpl(key, node); + AVMDAOs.Instance().fAVMNodeDAO.flush(); + AVMDAOs.Instance().fChildEntryDAO.save(entry); } diff --git a/source/java/org/alfresco/repo/avm/PlainDirectoryNodeImpl.java b/source/java/org/alfresco/repo/avm/PlainDirectoryNodeImpl.java index e05156abaa..729d4f3259 100644 --- a/source/java/org/alfresco/repo/avm/PlainDirectoryNodeImpl.java +++ b/source/java/org/alfresco/repo/avm/PlainDirectoryNodeImpl.java @@ -257,15 +257,11 @@ class PlainDirectoryNodeImpl extends DirectoryNodeImpl implements PlainDirectory ChildEntry existing = AVMDAOs.Instance().fChildEntryDAO.get(key); if (existing != null) { - existing.setChild(node); - AVMDAOs.Instance().fChildEntryDAO.update(existing); - } - else - { - ChildEntry entry = new ChildEntryImpl(key, node); - AVMDAOs.Instance().fAVMNodeDAO.flush(); - AVMDAOs.Instance().fChildEntryDAO.save(entry); + AVMDAOs.Instance().fChildEntryDAO.delete(existing); } + ChildEntry entry = new ChildEntryImpl(key, node); + AVMDAOs.Instance().fAVMNodeDAO.flush(); + AVMDAOs.Instance().fChildEntryDAO.save(entry); } /** diff --git a/source/java/org/alfresco/repo/avm/actions/SimpleAVMSubmitAction.java b/source/java/org/alfresco/repo/avm/actions/SimpleAVMSubmitAction.java index 008214dc8a..709f55cd2e 100644 --- a/source/java/org/alfresco/repo/avm/actions/SimpleAVMSubmitAction.java +++ b/source/java/org/alfresco/repo/avm/actions/SimpleAVMSubmitAction.java @@ -136,6 +136,7 @@ public class SimpleAVMSubmitAction extends ActionExecuterAbstractBase fAVMSyncService.update(diffs, fExcluder, false, false, true, true, "Submit of item: " + AVMNodeConverter.SplitBase(path)[1], null); // Cleanup by flattening the source relative to the destination. + // This is an ugliness to prevent database write misorderings in flatten. AVMDAOs.Instance().fAVMNodeDAO.flush(); fAVMSyncService.flatten(storePath[0] + ":/appBase", websiteName + "-staging:/appBase"); }