RATIS-2049. Suppress Sonar warning for volatile objects (#1057)
diff --git a/ratis-client/src/main/java/org/apache/ratis/client/impl/RaftClientImpl.java b/ratis-client/src/main/java/org/apache/ratis/client/impl/RaftClientImpl.java
index 1b82709..db789ae 100644
--- a/ratis-client/src/main/java/org/apache/ratis/client/impl/RaftClientImpl.java
+++ b/ratis-client/src/main/java/org/apache/ratis/client/impl/RaftClientImpl.java
@@ -172,6 +172,7 @@
private final RaftGroupId groupId;
private final RetryPolicy retryPolicy;
+ @SuppressWarnings({"squid:S3077"}) // Suppress volatile for generic type
private volatile RaftPeerId leaderId;
/** The callIds of the replied requests. */
private final RepliedCallIds repliedCallIds;
diff --git a/ratis-common/src/main/java/org/apache/ratis/util/MemoizedCheckedSupplier.java b/ratis-common/src/main/java/org/apache/ratis/util/MemoizedCheckedSupplier.java
index cf2d060..0e9ae44 100644
--- a/ratis-common/src/main/java/org/apache/ratis/util/MemoizedCheckedSupplier.java
+++ b/ratis-common/src/main/java/org/apache/ratis/util/MemoizedCheckedSupplier.java
@@ -44,6 +44,8 @@
}
private final CheckedSupplier<RETURN, THROW> initializer;
+
+ @SuppressWarnings({"squid:S3077"}) // Suppress volatile for generic type
private volatile RETURN value = null;
/**
diff --git a/ratis-common/src/main/java/org/apache/ratis/util/MemoizedSupplier.java b/ratis-common/src/main/java/org/apache/ratis/util/MemoizedSupplier.java
index f179d2d..5c2754a 100644
--- a/ratis-common/src/main/java/org/apache/ratis/util/MemoizedSupplier.java
+++ b/ratis-common/src/main/java/org/apache/ratis/util/MemoizedSupplier.java
@@ -40,6 +40,7 @@
}
private final Supplier<T> initializer;
+ @SuppressWarnings({"squid:S3077"}) // Suppress volatile for generic type
private volatile T value = null;
/**
diff --git a/ratis-examples/src/main/java/org/apache/ratis/examples/debug/server/Server.java b/ratis-examples/src/main/java/org/apache/ratis/examples/debug/server/Server.java
index 4377a14..07f7b20 100644
--- a/ratis-examples/src/main/java/org/apache/ratis/examples/debug/server/Server.java
+++ b/ratis-examples/src/main/java/org/apache/ratis/examples/debug/server/Server.java
@@ -34,6 +34,7 @@
private Server(){
}
+ @SuppressWarnings({"squid:S2095"}) // Suppress closeable warning
public static void main(String[] args) throws IOException {
if (args.length < 1) {
System.err.println("The arguments should be <ip:port>");
diff --git a/ratis-examples/src/main/java/org/apache/ratis/examples/filestore/cli/Client.java b/ratis-examples/src/main/java/org/apache/ratis/examples/filestore/cli/Client.java
index 1856fc9..caf2aa5 100644
--- a/ratis-examples/src/main/java/org/apache/ratis/examples/filestore/cli/Client.java
+++ b/ratis-examples/src/main/java/org/apache/ratis/examples/filestore/cli/Client.java
@@ -159,6 +159,9 @@
Process pro = Runtime.getRuntime().exec(cmds);
pro.waitFor();
} catch (Throwable t) {
+ if (t instanceof InterruptedException) {
+ Thread.currentThread().interrupt();
+ }
System.err.println("Failed to run command:" + Arrays.toString(cmds) + ":" + t.getMessage());
}
}
diff --git a/ratis-examples/src/main/java/org/apache/ratis/examples/membership/server/CServer.java b/ratis-examples/src/main/java/org/apache/ratis/examples/membership/server/CServer.java
index a846cd1..2145412 100644
--- a/ratis-examples/src/main/java/org/apache/ratis/examples/membership/server/CServer.java
+++ b/ratis-examples/src/main/java/org/apache/ratis/examples/membership/server/CServer.java
@@ -32,7 +32,6 @@
import org.apache.ratis.thirdparty.com.google.common.base.MoreObjects;
import org.apache.ratis.util.FileUtils;
-import java.io.Closeable;
import java.io.File;
import java.io.IOException;
import java.util.Collections;
@@ -40,7 +39,7 @@
/**
* A simple raft server using {@link CounterStateMachine}.
*/
-public class CServer implements Closeable {
+public class CServer {
public static final RaftGroupId GROUP_ID = RaftGroupId.randomId();
public static final String LOCAL_ADDR = "0.0.0.0";
@@ -78,7 +77,6 @@
return server.getPeer();
}
- @Override
public void close() throws IOException {
server.close();
FileUtils.deleteFully(storageDir);
diff --git a/ratis-grpc/src/main/java/org/apache/ratis/grpc/server/GrpcLogAppender.java b/ratis-grpc/src/main/java/org/apache/ratis/grpc/server/GrpcLogAppender.java
index ec44d8c..5f9c94e 100644
--- a/ratis-grpc/src/main/java/org/apache/ratis/grpc/server/GrpcLogAppender.java
+++ b/ratis-grpc/src/main/java/org/apache/ratis/grpc/server/GrpcLogAppender.java
@@ -156,7 +156,6 @@
private final TimeDuration logMessageBatchDuration;
private final int maxOutstandingInstallSnapshots;
private final TimeoutExecutor scheduler = TimeoutExecutor.getInstance();
-
private volatile StreamObservers appendLogRequestObserver;
private final boolean useSeparateHBChannel;
@@ -863,6 +862,7 @@
static class AppendEntriesRequest {
private final Timekeeper timer;
+ @SuppressWarnings({"squid:S3077"}) // Suppress volatile for generic type
private volatile Timekeeper.Context timerContext;
private final long callId;
@@ -871,7 +871,7 @@
private final TermIndex firstEntry;
private final TermIndex lastEntry;
-
+ @SuppressWarnings({"squid:S3077"}) // Suppress volatile for generic type
private volatile Timestamp sendTime;
AppendEntriesRequest(AppendEntriesRequestProto proto, RaftPeerId followerId, GrpcServerMetrics grpcServerMetrics) {
diff --git a/ratis-server-api/src/main/java/org/apache/ratis/server/leader/LogAppender.java b/ratis-server-api/src/main/java/org/apache/ratis/server/leader/LogAppender.java
index 020a352..36331e3 100644
--- a/ratis-server-api/src/main/java/org/apache/ratis/server/leader/LogAppender.java
+++ b/ratis-server-api/src/main/java/org/apache/ratis/server/leader/LogAppender.java
@@ -87,10 +87,11 @@
default CompletableFuture<?> stopAsync() {
stop();
return CompletableFuture.supplyAsync(() -> {
- for (; isRunning(); ) {
+ while (isRunning()) {
try {
Thread.sleep(10);
} catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
throw new CompletionException("stopAsync interrupted", e);
}
}
diff --git a/ratis-test/src/test/java/org/apache/ratis/server/storage/TestRaftStorage.java b/ratis-test/src/test/java/org/apache/ratis/server/storage/TestRaftStorage.java
index eb65f34..12cd771 100644
--- a/ratis-test/src/test/java/org/apache/ratis/server/storage/TestRaftStorage.java
+++ b/ratis-test/src/test/java/org/apache/ratis/server/storage/TestRaftStorage.java
@@ -87,6 +87,7 @@
return impl;
}
+ @SuppressWarnings({"squid:S5783"}) // Suppress same exception warning
@Test
public void testNotExistent() throws IOException {
FileUtils.deleteFully(storageDir);