You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ma...@apache.org on 2022/07/27 20:14:40 UTC
[cassandra] branch cassandra-4.1 updated: Remove usages of Path#toFile() in the snapshot apparatus
This is an automated email from the ASF dual-hosted git repository.
maedhroz pushed a commit to branch cassandra-4.1
in repository https://gitbox.apache.org/repos/asf/cassandra.git
The following commit(s) were added to refs/heads/cassandra-4.1 by this push:
new 3a0936b61f Remove usages of Path#toFile() in the snapshot apparatus
3a0936b61f is described below
commit 3a0936b61f63d8d7ab08bda411dd7d5963cafe0b
Author: Caleb Rackliffe <ca...@gmail.com>
AuthorDate: Tue Jul 26 16:27:21 2022 -0500
Remove usages of Path#toFile() in the snapshot apparatus
patch by Caleb Rackliffe; reviewed by David Capwell and Benedict Elliot Smith for CASSANDRA-17769
---
CHANGES.txt | 1 +
checkstyle.xml | 13 +++++++++++++
src/java/org/apache/cassandra/db/Directories.java | 5 +++++
src/java/org/apache/cassandra/db/DisallowedDirectories.java | 3 +--
.../org/apache/cassandra/io/sstable/SSTableHeaderFix.java | 2 +-
src/java/org/apache/cassandra/io/util/File.java | 3 ++-
.../apache/cassandra/service/snapshot/SnapshotLoader.java | 2 +-
.../apache/cassandra/service/snapshot/TableSnapshot.java | 2 +-
src/java/org/apache/cassandra/utils/binlog/BinLog.java | 4 ++--
.../org/apache/cassandra/utils/binlog/ExternalArchiver.java | 2 +-
10 files changed, 28 insertions(+), 9 deletions(-)
diff --git a/CHANGES.txt b/CHANGES.txt
index 0aa25101a3..7bf2f35b33 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
4.1-alpha2
+ * Remove usages of Path#toFile() in the snapshot apparatus (CASSANDRA-17769)
* Fix Settings Virtual Table to update paxos_variant after startup and rename enable_uuid_sstable_identifiers to
uuid_sstable_identifiers_enabled as per our config naming conventions (CASSANDRA-17738)
* index_summary_resize_interval_in_minutes = -1 is equivalent to index_summary_resize_interval being set to null or
diff --git a/checkstyle.xml b/checkstyle.xml
index 9a71312e63..8e2f90ee22 100644
--- a/checkstyle.xml
+++ b/checkstyle.xml
@@ -54,6 +54,12 @@
<property name="idFormat" value="blockSystemClock"/>
<property name="influenceFormat" value="0"/>
</module>
+
+ <module name="SuppressWithNearbyCommentFilter">
+ <property name="commentFormat" value="checkstyle: permit this invocation"/>
+ <property name="idFormat" value="blockPathToFile"/>
+ <property name="influenceFormat" value="0"/>
+ </module>
<module name="RegexpSinglelineJava">
<!-- block system time -->
@@ -92,6 +98,13 @@
<module name="IllegalInstantiation">
<property name="classes" value="java.io.File,java.lang.Thread,java.util.concurrent.FutureTask,java.util.concurrent.Semaphore,java.util.concurrent.CountDownLatch,java.util.concurrent.ScheduledThreadPoolExecutor,java.util.concurrent.ThreadPoolExecutor,java.util.concurrent.ForkJoinPool,java.lang.OutOfMemoryError"/>
</module>
+
+ <module name="RegexpSinglelineJava">
+ <!-- block Path#toFile() -->
+ <property name="id" value="blockPathToFile"/>
+ <property name="format" value="toFile\(\)"/>
+ <property name="message" value="Avoid Path#toFile(), as some implementations may not support it." />
+ </module>
</module>
</module>
diff --git a/src/java/org/apache/cassandra/db/Directories.java b/src/java/org/apache/cassandra/db/Directories.java
index 8672377b75..079b294686 100644
--- a/src/java/org/apache/cassandra/db/Directories.java
+++ b/src/java/org/apache/cassandra/db/Directories.java
@@ -1197,6 +1197,11 @@ public class Directories
return dir.name().startsWith(SECONDARY_INDEX_NAME_SEPARATOR);
}
+ public static boolean isSecondaryIndexFolder(Path dir)
+ {
+ return PathUtils.filename(dir).startsWith(SECONDARY_INDEX_NAME_SEPARATOR);
+ }
+
public List<File> getCFDirectories()
{
List<File> result = new ArrayList<>();
diff --git a/src/java/org/apache/cassandra/db/DisallowedDirectories.java b/src/java/org/apache/cassandra/db/DisallowedDirectories.java
index 968a08d8c7..e666bad785 100644
--- a/src/java/org/apache/cassandra/db/DisallowedDirectories.java
+++ b/src/java/org/apache/cassandra/db/DisallowedDirectories.java
@@ -20,7 +20,6 @@ package org.apache.cassandra.db;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.Collections;
import java.util.Set;
import java.util.concurrent.CopyOnWriteArraySet;
import java.util.concurrent.atomic.AtomicInteger;
@@ -64,7 +63,7 @@ public class DisallowedDirectories implements DisallowedDirectoriesMBean
private static Set<java.io.File> toJmx(Set<File> set)
{
- return set.stream().map(f -> f.toPath().toFile()).collect(Collectors.toSet());
+ return set.stream().map(f -> f.toPath().toFile()).collect(Collectors.toSet()); // checkstyle: permit this invocation
}
public void markUnreadable(String path)
diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableHeaderFix.java b/src/java/org/apache/cassandra/io/sstable/SSTableHeaderFix.java
index 643a9dea1e..f78200a31f 100644
--- a/src/java/org/apache/cassandra/io/sstable/SSTableHeaderFix.java
+++ b/src/java/org/apache/cassandra/io/sstable/SSTableHeaderFix.java
@@ -301,7 +301,7 @@ public abstract class SSTableHeaderFix
.filter(p -> {
try
{
- return Descriptor.fromFilenameWithComponent(new File(p.toFile())).right.type == Component.Type.DATA;
+ return Descriptor.fromFilenameWithComponent(new File(p)).right.type == Component.Type.DATA;
}
catch (IllegalArgumentException t)
{
diff --git a/src/java/org/apache/cassandra/io/util/File.java b/src/java/org/apache/cassandra/io/util/File.java
index 23113b164b..71f8fc589e 100644
--- a/src/java/org/apache/cassandra/io/util/File.java
+++ b/src/java/org/apache/cassandra/io/util/File.java
@@ -699,7 +699,8 @@ public class File implements Comparable<File>
public java.io.File toJavaIOFile()
{
- return path == null ? new java.io.File("") : path.toFile(); // checkstyle: permit this instantiation
+ return path == null ? new java.io.File("") // checkstyle: permit this instantiation
+ : path.toFile(); // checkstyle: permit this invocation
}
/**
diff --git a/src/java/org/apache/cassandra/service/snapshot/SnapshotLoader.java b/src/java/org/apache/cassandra/service/snapshot/SnapshotLoader.java
index 5f50937bf4..979904b111 100644
--- a/src/java/org/apache/cassandra/service/snapshot/SnapshotLoader.java
+++ b/src/java/org/apache/cassandra/service/snapshot/SnapshotLoader.java
@@ -80,7 +80,7 @@ public class SnapshotLoader extends SimpleFileVisitor<Path>
{
try
{
- if (dataDir.toFile().exists())
+ if (new File(dataDir).exists())
{
Files.walkFileTree(dataDir, Collections.EMPTY_SET, 5, this);
}
diff --git a/src/java/org/apache/cassandra/service/snapshot/TableSnapshot.java b/src/java/org/apache/cassandra/service/snapshot/TableSnapshot.java
index 93fe2455c4..476bad7ab3 100644
--- a/src/java/org/apache/cassandra/service/snapshot/TableSnapshot.java
+++ b/src/java/org/apache/cassandra/service/snapshot/TableSnapshot.java
@@ -299,7 +299,7 @@ public class TableSnapshot
{
// Snapshot directory structure format is {data_dir}/snapshots/{snapshot_name}/{snapshot_file}
Path liveDir = snapshotFilePath.getParent().getParent().getParent();
- if (Directories.isSecondaryIndexFolder(new File(snapshotFilePath.getParent().toFile())))
+ if (Directories.isSecondaryIndexFolder(snapshotFilePath.getParent()))
{
// Snapshot file structure format is {data_dir}/snapshots/{snapshot_name}/.{index}/{sstable-component}.db
liveDir = Paths.get(liveDir.getParent().toString(), snapshotFilePath.getParent().getFileName().toString());
diff --git a/src/java/org/apache/cassandra/utils/binlog/BinLog.java b/src/java/org/apache/cassandra/utils/binlog/BinLog.java
index e2ae1ec09b..b4ec06673e 100644
--- a/src/java/org/apache/cassandra/utils/binlog/BinLog.java
+++ b/src/java/org/apache/cassandra/utils/binlog/BinLog.java
@@ -122,7 +122,7 @@ public class BinLog implements Runnable
Preconditions.checkNotNull(path, "path was null");
Preconditions.checkNotNull(options.roll_cycle, "roll_cycle was null");
Preconditions.checkArgument(options.max_queue_weight > 0, "max_queue_weight must be > 0");
- SingleChronicleQueueBuilder builder = SingleChronicleQueueBuilder.single(path.toFile());
+ SingleChronicleQueueBuilder builder = SingleChronicleQueueBuilder.single(path.toFile()); // checkstyle: permit this invocation
builder.rollCycle(RollCycles.valueOf(options.roll_cycle));
sampleQueue = new WeightedQueue<>(options.max_queue_weight);
@@ -430,7 +430,7 @@ public class BinLog implements Runnable
if (cleanDirectory)
{
logger.info("Cleaning directory: {} as requested", path);
- if (path.toFile().exists())
+ if (new File(path).exists())
{
Throwable error = cleanDirectory(new File(path), null);
if (error != null)
diff --git a/src/java/org/apache/cassandra/utils/binlog/ExternalArchiver.java b/src/java/org/apache/cassandra/utils/binlog/ExternalArchiver.java
index 3f1d6bc51a..a6b233502e 100644
--- a/src/java/org/apache/cassandra/utils/binlog/ExternalArchiver.java
+++ b/src/java/org/apache/cassandra/utils/binlog/ExternalArchiver.java
@@ -154,7 +154,7 @@ public class ExternalArchiver implements BinLogArchiver
{
if (path == null)
return;
- for (File f : path.toFile().listFiles((f) -> f.isFile() && f.getName().endsWith(SingleChronicleQueue.SUFFIX)))
+ for (File f : path.toFile().listFiles((f) -> f.isFile() && f.getName().endsWith(SingleChronicleQueue.SUFFIX))) // checkstyle: permit this invocation
{
try
{
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org