This is an automated email from the ASF dual-hosted git repository.
szetszwo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ratis.git
The following commit(s) were added to refs/heads/master by this push:
new 54c2b1f7f RATIS-2049. Suppress Sonar warning for volatile objects
(#1057)
54c2b1f7f is described below
commit 54c2b1f7f82c5cb66fa6b652a29ff9cef22bf4b1
Author: Potato <[email protected]>
AuthorDate: Mon Mar 25 23:12:57 2024 +0800
RATIS-2049. Suppress Sonar warning for volatile objects (#1057)
---
.../src/main/java/org/apache/ratis/client/impl/RaftClientImpl.java | 1 +
.../src/main/java/org/apache/ratis/util/MemoizedCheckedSupplier.java | 2 ++
.../src/main/java/org/apache/ratis/util/MemoizedSupplier.java | 1 +
.../src/main/java/org/apache/ratis/examples/debug/server/Server.java | 1 +
.../src/main/java/org/apache/ratis/examples/filestore/cli/Client.java | 3 +++
.../java/org/apache/ratis/examples/membership/server/CServer.java | 4 +---
.../src/main/java/org/apache/ratis/grpc/server/GrpcLogAppender.java | 4 ++--
.../src/main/java/org/apache/ratis/server/leader/LogAppender.java | 3 ++-
.../test/java/org/apache/ratis/server/storage/TestRaftStorage.java | 1 +
9 files changed, 14 insertions(+), 6 deletions(-)
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 1b82709da..db789aef2 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 @@ public final class RaftClientImpl implements RaftClient {
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 cf2d06023..0e9ae44fa 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 @@ public final class MemoizedCheckedSupplier<RETURN, THROW
extends Throwable>
}
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 f179d2dcd..5c2754a30 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 @@ public final class MemoizedSupplier<T> implements Supplier<T>
{
}
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 4377a1420..07f7b20f4 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 @@ public final class Server {
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 1856fc9b5..caf2aa59b 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 @@ public abstract class Client extends SubCommandBase {
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 a846cd1e7..2145412e0 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.server.storage.RaftStorage;
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 @@ import java.util.Collections;
/**
* 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 @@ public class CServer implements Closeable {
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 ec44d8c48..5f9c94eb2 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 @@ public class GrpcLogAppender extends LogAppenderBase {
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 @@ public class GrpcLogAppender extends LogAppenderBase {
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 @@ public class GrpcLogAppender extends LogAppenderBase {
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 020a352c0..36331e3ab 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 @@ public interface LogAppender {
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 eb65f342e..12cd77131 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 @@ public class TestRaftStorage extends BaseTest {
return impl;
}
+ @SuppressWarnings({"squid:S5783"}) // Suppress same exception warning
@Test
public void testNotExistent() throws IOException {
FileUtils.deleteFully(storageDir);