This is an automated email from the ASF dual-hosted git repository.

joscorbe pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 9723edba9e OAK-11564 oak-run FullGC leaves background threads running
9723edba9e is described below

commit 9723edba9ece9c26a16798d531d22df63d8d8bb3
Author: Daniel Iancu <[email protected]>
AuthorDate: Fri Mar 7 17:19:46 2025 +0200

    OAK-11564 oak-run FullGC leaves background threads running
---
 .../apache/jackrabbit/oak/run/RevisionsCommand.java    | 18 ++++++++++++++++++
 .../oak/plugins/document/RevisionsCommandTest.java     |  2 +-
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git 
a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RevisionsCommand.java 
b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RevisionsCommand.java
index 07f6c4dc86..1bdf2ac8ba 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RevisionsCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RevisionsCommand.java
@@ -105,6 +105,20 @@ public class RevisionsCommand implements Command {
             
"org.apache.jackrabbit.oak.plugins.document.VersionGCRecommendations"
     );
 
+    private final boolean exitWhenDone;
+
+    public RevisionsCommand() {
+        this(true);
+    }
+
+    /**
+     *
+     * @param exitWhenDone if true, the command will exit the JVM when done
+     */
+    public RevisionsCommand(boolean exitWhenDone) {
+        this.exitWhenDone = exitWhenDone;
+    }
+
     private static class RevisionsOptions extends Utils.NodeStoreOptions {
 
         static final String CMD_INFO = "info";
@@ -325,6 +339,10 @@ public class RevisionsCommand implements Command {
             } else {
                 System.err.println("unknown revisions command: " + subCmd);
             }
+            if (exitWhenDone) {
+                System.out.printf("Command '%s' completed successfully.%n", 
subCmd);
+                System.exit(0);
+            }
         } catch (Throwable e) {
             LOG.error("Command failed", e);
             throw closer.rethrow(e);
diff --git 
a/oak-run/src/test/java/org/apache/jackrabbit/oak/plugins/document/RevisionsCommandTest.java
 
b/oak-run/src/test/java/org/apache/jackrabbit/oak/plugins/document/RevisionsCommandTest.java
index ca60524191..846e407162 100644
--- 
a/oak-run/src/test/java/org/apache/jackrabbit/oak/plugins/document/RevisionsCommandTest.java
+++ 
b/oak-run/src/test/java/org/apache/jackrabbit/oak/plugins/document/RevisionsCommandTest.java
@@ -433,7 +433,7 @@ public class RevisionsCommandTest {
         @Override
         public void run() {
             try {
-                new RevisionsCommand().execute(args.toArray(new String[0]));
+                new RevisionsCommand(false).execute(args.toArray(new 
String[0]));
             } catch (Exception e) {
                 throw new RuntimeException(e);
             }

Reply via email to