From c548a0ab64769b8f45644cb4bedbb96eb04994b5 Mon Sep 17 00:00:00 2001 From: Rob Rudin Date: Thu, 24 Jul 2025 07:19:55 -0400 Subject: [PATCH] MLE-12345 Going back to clearing the database Deleting each URI fails for temporal URIs. Blah. --- .../functionaltest/ConnectedRESTQA.java | 23 +++++++------------ 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/functionaltest/ConnectedRESTQA.java b/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/functionaltest/ConnectedRESTQA.java index 5e3ebe004..47ec7378f 100644 --- a/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/functionaltest/ConnectedRESTQA.java +++ b/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/functionaltest/ConnectedRESTQA.java @@ -17,6 +17,7 @@ import com.marklogic.client.impl.SSLUtil; import com.marklogic.client.io.DocumentMetadataHandle; import com.marklogic.client.io.DocumentMetadataHandle.Capability; +import com.marklogic.client.query.QueryManager; import com.marklogic.mgmt.ManageClient; import com.marklogic.mgmt.ManageConfig; import com.marklogic.mgmt.resource.appservers.ServerManager; @@ -313,21 +314,13 @@ public static void deleteDB(String dbName) { } public static void clearDB(int port) { - DatabaseClientBuilder builder = newDatabaseClientBuilder() - .withDigestAuth(admin_user, admin_password) - .withPort(port); - - try (DatabaseClient client = builder.build()) { - // Trying an eval instead of a "DELETE v1/search", which leads to intermittent errors on Jenkins involving - // a "clear" operation on a forest failing. - String count = client.newServerEval() - .xquery("let $uris := " + - " for $uri in cts:uris((), (), cts:true-query()) " + - " let $_ := xdmp:document-delete($uri) " + - " return $uri " + - "return fn:count($uris)") - .evalAs(String.class); - LoggerFactory.getLogger(ConnectedRESTQA.class).info("Cleared database, deleting {} URIs", count); + try (DatabaseClient client = newDatabaseClientBuilder().withPort(port).build()) { + QueryManager mgr = client.newQueryManager(); + mgr.delete(mgr.newDeleteDefinition()); + // Clearing the database occasionally causes a forest to not be available for a moment or two when the tests + // are running on Jenkins. This leads to intermittent failures. Waiting is not guaranteed to avoid the + // error but simply hopes to minimize the chance of an intermittent failure. + waitFor(2000); } }