diff --git a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/snapshot/SnapshotDiffReportOzone.java b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/snapshot/SnapshotDiffReportOzone.java index e4d18a2e61b7..b87ef9223c8a 100644 --- a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/snapshot/SnapshotDiffReportOzone.java +++ b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/snapshot/SnapshotDiffReportOzone.java @@ -149,7 +149,7 @@ public static SnapshotDiffReportOzone fromProtobuf( report.getDiffListList().stream() .map(SnapshotDiffReportOzone::fromProtobufDiffReportEntry) .collect(Collectors.toList()), - report.getToken()); + report.hasToken() ? report.getToken() : null); } public static DiffType fromProtobufDiffType( diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshot.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshot.java index d8b05683ff4d..212144304ff5 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshot.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshot.java @@ -18,6 +18,7 @@ package org.apache.hadoop.ozone.om.snapshot; import static java.nio.charset.StandardCharsets.UTF_8; +import static org.apache.commons.lang3.StringUtils.isNotEmpty; import static org.apache.commons.lang3.StringUtils.leftPad; import static org.apache.hadoop.hdds.HddsConfigKeys.HDDS_DB_PROFILE; import static org.apache.hadoop.ozone.OzoneAcl.AclScope.DEFAULT; @@ -2092,7 +2093,6 @@ public void testSnapshotDiffWhenOmRestartAndReportIsPartiallyFetched() bucketName, snapshot1, snapshot2, null, pageSize); List diffReportEntries = diffReport.getDiffList(); - String nextToken = diffReport.getToken(); // Restart the OM and no need to wait because snapDiff job finished before // the restart. @@ -2101,11 +2101,10 @@ public void testSnapshotDiffWhenOmRestartAndReportIsPartiallyFetched() await(POLL_MAX_WAIT_MILLIS, POLL_INTERVAL_MILLIS, () -> cluster.getOzoneManager().isRunning()); - while (nextToken == null || !nextToken.isEmpty()) { + while (isNotEmpty(diffReport.getToken())) { diffReport = fetchReportPage(volumeName, bucketName, snapshot1, - snapshot2, nextToken, pageSize); + snapshot2, diffReport.getToken(), pageSize); diffReportEntries.addAll(diffReport.getDiffList()); - nextToken = diffReport.getToken(); } assertEquals(100, diffReportEntries.size()); } diff --git a/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicOzoneClientAdapterImpl.java b/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicOzoneClientAdapterImpl.java index 10255b4954f1..3ac6d0db745e 100644 --- a/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicOzoneClientAdapterImpl.java +++ b/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicOzoneClientAdapterImpl.java @@ -703,7 +703,7 @@ public SnapshotDiffReport getSnapshotDiffReport(Path snapshotDir, SnapshotDiffReportOzone report = getSnapshotDiffReportOnceComplete(fromSnapshot, toSnapshot, ""); aggregated = report; - while (!report.getToken().isEmpty()) { + while (StringUtils.isNotEmpty(report.getToken())) { LOG.info( "Total Snapshot Diff length between snapshot {} and {} exceeds" + " max page size, Performing another " + diff --git a/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicRootedOzoneClientAdapterImpl.java b/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicRootedOzoneClientAdapterImpl.java index b13d1808fd67..2f5215a3b924 100644 --- a/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicRootedOzoneClientAdapterImpl.java +++ b/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicRootedOzoneClientAdapterImpl.java @@ -1367,7 +1367,7 @@ public SnapshotDiffReport getSnapshotDiffReport(Path snapshotDir, getSnapshotDiffReportOnceComplete(fromSnapshot, toSnapshot, volume, bucket, ""); aggregated = report; - while (!report.getToken().isEmpty()) { + while (StringUtils.isNotEmpty(report.getToken())) { LOG.info( "Total Snapshot Diff length between snapshot {} and {} exceeds" + " max page size, Performing another" +