diff --git a/source/java/org/alfresco/repo/module/tool/ModuleManagementTool.java b/source/java/org/alfresco/repo/module/tool/ModuleManagementTool.java index d4ddd87501..ebdc546666 100644 --- a/source/java/org/alfresco/repo/module/tool/ModuleManagementTool.java +++ b/source/java/org/alfresco/repo/module/tool/ModuleManagementTool.java @@ -240,6 +240,13 @@ public class ModuleManagementTool implements LogOutput // Try to find an installed module by the ID ModuleDetails installedModuleDetails = warHelper.getModuleDetailsOrAlias(warFile, installingModuleDetails); + //Check module directory exists + TFile moduleInstallDirectory = new TFile(warFileLocation + WarHelper.MODULE_NAMESPACE_DIR+ "/" + installingId); + if (preview == false && moduleInstallDirectory.exists() == false) + { + moduleInstallDirectory.mkdir(); + } + uninstallIfNecessary(warFileLocation, installedModuleDetails, preview, forceInstall, installingVersion); outputVerboseMessage("Adding files relating to version '" + installingVersion + "' of module '" + installingId + "'"); diff --git a/source/java/org/alfresco/repo/module/tool/ModuleManagementToolTest.java b/source/java/org/alfresco/repo/module/tool/ModuleManagementToolTest.java index f6088f4a8e..ce9565abe1 100644 --- a/source/java/org/alfresco/repo/module/tool/ModuleManagementToolTest.java +++ b/source/java/org/alfresco/repo/module/tool/ModuleManagementToolTest.java @@ -85,7 +85,7 @@ public class ModuleManagementToolTest extends TestCase installed0.load(); assertNotNull(installed0); assertEquals(9, installed0.getAdds().size()); - assertEquals(1, installed0.getMkdirs().size()); + //assertEquals(1, installed0.getMkdirs().size()); // Try and install same version try @@ -168,7 +168,11 @@ public class ModuleManagementToolTest extends TestCase assertNotNull(warDirectory); assertNotNull(ampDirectory); this.manager.installModule(ampDirectory, warDirectory); - + + warDirectory = extractToDir(".war", "module/share-4.2.a.war"); + assertNotNull(warDirectory); + String ampV2Location = getFileLocation(".amp", "module/test_v6.amp"); + this.manager.installModule(ampV2Location, warDirectory); } public void testDependencySuccess() throws Exception diff --git a/source/test-resources/module/test_v6.amp b/source/test-resources/module/test_v6.amp new file mode 100644 index 0000000000..8d864ac414 Binary files /dev/null and b/source/test-resources/module/test_v6.amp differ