diff --git a/CHANGES.txt b/CHANGES.txt index 01918fe861..6d80b2972e 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -125,6 +125,7 @@ * Rename DisableFlag class to EnableFlag on guardrails (CASSANDRA-17544) 4.1.2 + * Fix NPE when loading snapshots and data directory is one directory from root (CASSANDRA-18359) * Do not submit hints when hinted_handoff_enabled=false (CASSANDRA-18304) * Fix COPY ... TO STDOUT behavior in cqlsh (CASSANDRA-18353) * Remove six and Py2SaferScanner merge cruft (CASSANDRA-18354) diff --git a/src/java/org/apache/cassandra/service/snapshot/SnapshotLoader.java b/src/java/org/apache/cassandra/service/snapshot/SnapshotLoader.java index 34beffda97..d31df361e5 100644 --- a/src/java/org/apache/cassandra/service/snapshot/SnapshotLoader.java +++ b/src/java/org/apache/cassandra/service/snapshot/SnapshotLoader.java @@ -107,6 +107,10 @@ public class SnapshotLoader @Override public FileVisitResult preVisitDirectory(Path subdir, BasicFileAttributes attrs) { + // see CASSANDRA-18359 + if (subdir.getParent() == null || subdir.getParent().getFileName() == null) + return FileVisitResult.CONTINUE; + if (subdir.getParent().getFileName().toString().equals(SNAPSHOT_SUBDIR)) { logger.trace("Processing directory " + subdir);