diff --git a/src/main/java/com/marklogic/mgmt/resource/tasks/TaskManager.java b/src/main/java/com/marklogic/mgmt/resource/tasks/TaskManager.java index 8704f8b4b..893514948 100644 --- a/src/main/java/com/marklogic/mgmt/resource/tasks/TaskManager.java +++ b/src/main/java/com/marklogic/mgmt/resource/tasks/TaskManager.java @@ -65,6 +65,7 @@ protected String getResourceId(String payload) { "task-path and task-database, but payload is missing a task-root to determine which existing task is " + "the same root; payload: " + payload); } + for (String resourceId : resourceIds) { String json = getManageClient().getJson(appendGroupId(super.getResourcesPath() + "/" + resourceId + "/properties")); String thisTaskRoot = payloadParser.getPayloadFieldValue(json, "task-root", false); @@ -252,8 +253,17 @@ public void deleteAllTasks() { deleteAllScheduledTasks(); } + /** + * @param taskPath + */ + @Deprecated(since = "Deprecated since 4.0.2, as the taskPath may not suffice for uniquely identifying a task. " + + "This now assumes a task root of '/' to at least avoid an error being thrown.") public void deleteTaskWithPath(String taskPath) { - String json = format("{\"task-path\":\"%s\"}", taskPath); + deleteTaskWithPath(taskPath, "/"); + } + + public void deleteTaskWithPath(String taskPath, String taskRoot) { + String json = format("{\"task-path\":\"%s\", \"task-root\":\"%s\"}", taskPath, taskRoot); delete(json, "group-id", groupName); } diff --git a/src/test/java/com/marklogic/appdeployer/export/ExportTasksTest.java b/src/test/java/com/marklogic/appdeployer/export/ExportTasksTest.java index c31ab85a8..186a0e99b 100644 --- a/src/test/java/com/marklogic/appdeployer/export/ExportTasksTest.java +++ b/src/test/java/com/marklogic/appdeployer/export/ExportTasksTest.java @@ -30,14 +30,14 @@ public void test() { assertEquals("query.xqy.json", resources.getFiles().get(0).getName()); TaskManager mgr = new TaskManager(manageClient); - mgr.deleteTaskWithPath(taskPath); + mgr.deleteTaskWithPath(taskPath, "/"); assertFalse(mgr.exists(taskPath)); appConfig.getFirstConfigDir().setBaseDir(exportDir); deploySampleApp(); assertTrue(mgr.exists(taskPath)); - mgr.deleteTaskWithPath(taskPath); + mgr.deleteTaskWithPath(taskPath, "/"); assertFalse(mgr.exists(taskPath)); } }