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 b2d89194a9 OAK-11795: Fix FullGC Audit Logs when executed via
revisions command (#2377)
b2d89194a9 is described below
commit b2d89194a941b8741797a8e4d90bd95d5438a5bd
Author: José Andrés Cordero Benítez <[email protected]>
AuthorDate: Thu Jul 10 15:05:24 2025 +0200
OAK-11795: Fix FullGC Audit Logs when executed via revisions command (#2377)
---
.../jackrabbit/oak/run/RevisionsCommand.java | 6 +++--
.../oak/plugins/document/RevisionsCommandTest.java | 27 ++++++++++++++++++++++
2 files changed, 31 insertions(+), 2 deletions(-)
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 1a165b4b49..6f765b12d4 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
@@ -218,7 +218,7 @@ public class RevisionsCommand implements Command {
"nodes for Full GC which are not accessed recently
(currentTime - lastModifiedTime > fullGcMaxAge). Default: 86400 (one day)")
.withOptionalArg().ofType(Long.class).defaultsTo(TimeUnit.DAYS.toSeconds(1));
fullGCAuditLoggingEnabled =
parser.accepts("fullGCAuditLoggingEnabled", "Enable audit logging for Full GC")
- .withOptionalArg().ofType(Boolean.class).defaultsTo(FALSE);
+ .withRequiredArg().ofType(Boolean.class).defaultsTo(FALSE);
exportMetrics = parser.accepts("exportMetrics",
"type, URI to export the metrics and optional metadata all
delimeted by semi-colon(;)").withRequiredArg();
}
@@ -321,7 +321,7 @@ public class RevisionsCommand implements Command {
}
Boolean isFullGCAuditLoggingEnabled() {
- return options.has(fullGCAuditLoggingEnabled);
+ return options.valueOf(fullGCAuditLoggingEnabled);
}
boolean exportMetrics() {
@@ -400,6 +400,7 @@ public class RevisionsCommand implements Command {
builder.setFullGCBatchSize(options.getFullGcBatchSize());
builder.setFullGCProgressSize(options.getFullGcProgressSize());
builder.setFullGcMaxAgeMillis(SECONDS.toMillis(options.getFullGcMaxAge()));
+
builder.setFullGCAuditLoggingEnabled(options.isFullGCAuditLoggingEnabled());
// create a VersionGCSupport while builder is read-write
VersionGCSupport gcSupport = builder.createVersionGCSupport();
@@ -424,6 +425,7 @@ public class RevisionsCommand implements Command {
System.out.println("EmbeddedVerification is enabled : " +
gc.isEmbeddedVerificationEnabled());
System.out.println("ResetFullGC is enabled : " +
options.isResetFullGC());
System.out.println("Compaction is enabled : " +
options.doCompaction());
+ System.out.println("FullGCAuditLoggingEnabled : " +
builder.isFullGCAuditLoggingEnabled());
System.out.println("IncludePaths are : " +
sortedSet(gc.getFullGCIncludePaths()));
System.out.println("ExcludePaths are : " +
sortedSet(gc.getFullGCExcludePaths()));
System.out.println("FullGcMode is : " +
VersionGarbageCollector.getFullGcMode());
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 3fc023b6f8..1bc4669e0f 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
@@ -372,6 +372,33 @@ public class RevisionsCommandTest {
assertTrue(errOutput.contains("--path or --entireRepo option is
required for fullGC command"));
}
+ @Test
+ public void auditLoggingEnabled() {
+ ns.dispose();
+
+ String output = captureSystemOut(new RevisionsCmd("fullGC",
"--entireRepo", "--fullGCAuditLoggingEnabled", "true"));
+ assertTrue(output.contains("FullGCAuditLoggingEnabled : true"));
+ assertTrue(output.contains("starting gc collect"));
+ }
+
+ @Test
+ public void auditLoggingDisabled() {
+ ns.dispose();
+
+ String output = captureSystemOut(new RevisionsCmd("fullGC",
"--entireRepo", "--fullGCAuditLoggingEnabled", "false"));
+ assertTrue(output.contains("FullGCAuditLoggingEnabled : false"));
+ assertTrue(output.contains("starting gc collect"));
+ }
+
+ @Test
+ public void auditLoggingNotSet() {
+ ns.dispose();
+
+ String output = captureSystemOut(new RevisionsCmd("fullGC",
"--entireRepo"));
+ assertTrue(output.contains("FullGCAuditLoggingEnabled : false"));
+ assertTrue(output.contains("starting gc collect"));
+ }
+
@Test
public void fullGCWithEmbeddedWithPath() {
ns.dispose();