Skip to content

Commit b4d5054

Browse files
author
Rishabh Kumar
committed
OAK-11452 : fixed a potential NPE in toString()
1 parent 5db665e commit b4d5054

File tree

2 files changed

+25
-7
lines changed

2 files changed

+25
-7
lines changed

oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/FullGCStatsCollectorImpl.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -248,13 +248,13 @@ public void maxAge(long maxAge) {
248248
@Override
249249
public String toString() {
250250
return "FullGCStatsCollectorImpl{" +
251-
"enabled=" + enabled.getValue() +
252-
", mode=" + mode.getValue() +
253-
", delayFactor=" + delayFactor.getValue() +
254-
", batchSize=" + batchSize.getValue() +
255-
", progressSize=" + progressSize.getValue() +
256-
", embeddedVerificationEnabled=" + embeddedVerificationEnabled.getValue() +
257-
", maxAge=" + maxAge.getValue() +
251+
"enabled=" + getValue(enabled, "false") +
252+
", mode=" + getValue(mode, "0") +
253+
", delayFactor=" + getValue(delayFactor, "0.0") +
254+
", batchSize=" + getValue(batchSize, "0") +
255+
", progressSize=" + getValue(progressSize, "0") +
256+
", embeddedVerificationEnabled=" + getValue(embeddedVerificationEnabled, "false") +
257+
", maxAge=" + getValue(maxAge, "0") +
258258
", readDoc=" + readDoc.getCount() +
259259
", candidateRevisions=" + mapToString(candidateRevisions) +
260260
", candidateInternalRevisions=" + mapToString(candidateInternalRevisions) +
@@ -308,4 +308,9 @@ private static String qualifiedName(String metricName) {
308308
private MeterStats getMeter(Map<GCPhase, MeterStats> map, GCPhase phase, String name) {
309309
return map.computeIfAbsent(phase, p -> meter(provider, name + "." + p.name()));
310310
}
311+
312+
private String getValue(final GaugeStats<?> gaugeStats, final String defaultValue) {
313+
return gaugeStats != null ? String.valueOf(gaugeStats.getValue()) : defaultValue;
314+
}
315+
311316
}

oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/FullGCStatsCollectorImplTest.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,19 @@ public void getFullGcOsgiConfigs() {
293293
assertTrue(stats.toString().contains("mode=4"));
294294
}
295295

296+
@Test
297+
public void getFullGcOsgiConfigsDefaults() {
298+
299+
// update the value
300+
assertTrue(stats.toString().contains("maxAge=0"));
301+
assertTrue(stats.toString().contains("enabled=false"));
302+
assertTrue(stats.toString().contains("embeddedVerificationEnabled=false"));
303+
assertTrue(stats.toString().contains("progressSize=0"));
304+
assertTrue(stats.toString().contains("batchSize=0"));
305+
assertTrue(stats.toString().contains("delayFactor=0.0"));
306+
assertTrue(stats.toString().contains("mode=0"));
307+
}
308+
296309
// helper methods
297310

298311
private void assertTimer(long expected, String name) {

0 commit comments

Comments
 (0)