diff --git a/CHANGES.txt b/CHANGES.txt index d1f5e73825..c1259bcfe8 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 4.1 + * Forbid other Future implementations with checkstyle (CASSANDRA-17055) * commit log was switched from non-daemon to daemon threads, which causes the JVM to exit in some case as no non-daemon threads are active (CASSANDRA-17085) * Add a Denylist to block reads and writes on specific partition keys (CASSANDRA-12106) * v4+ protocol did not clean up client warnings, which caused leaking the state (CASSANDRA-17054) diff --git a/checkstyle.xml b/checkstyle.xml index 383e2b3d87..0c921678ee 100644 --- a/checkstyle.xml +++ b/checkstyle.xml @@ -29,6 +29,7 @@ + @@ -36,7 +37,24 @@ - + + + + + + + + + + + + + + + + + + @@ -44,7 +62,7 @@ - + diff --git a/checkstyle_suppressions.xml b/checkstyle_suppressions.xml index 860efc50e7..ed4d1443f7 100644 --- a/checkstyle_suppressions.xml +++ b/checkstyle_suppressions.xml @@ -21,6 +21,5 @@ "https://checkstyle.org/dtds/suppressions_1_1.dtd"> - - + diff --git a/src/java/org/apache/cassandra/cql3/functions/UDFunction.java b/src/java/org/apache/cassandra/cql3/functions/UDFunction.java index eccea3c566..55a2d45eb7 100644 --- a/src/java/org/apache/cassandra/cql3/functions/UDFunction.java +++ b/src/java/org/apache/cassandra/cql3/functions/UDFunction.java @@ -28,7 +28,7 @@ import java.util.Enumeration; import java.util.HashSet; import java.util.List; import java.util.Optional; -import java.util.concurrent.CompletableFuture; +import java.util.concurrent.CompletableFuture; // checkstyle: permit this import import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; diff --git a/src/java/org/apache/cassandra/io/util/File.java b/src/java/org/apache/cassandra/io/util/File.java index 5fa5c9de28..8d4a0307a3 100644 --- a/src/java/org/apache/cassandra/io/util/File.java +++ b/src/java/org/apache/cassandra/io/util/File.java @@ -21,7 +21,7 @@ package org.apache.cassandra.io.util; import java.io.IOException; import java.net.URI; import java.nio.channels.FileChannel; -import java.nio.file.*; +import java.nio.file.*; // checkstyle: permit this import import java.util.Objects; import java.util.function.BiPredicate; import java.util.function.Consumer; @@ -544,7 +544,7 @@ public class File implements Comparable public java.io.File toJavaIOFile() { - return path == null ? new java.io.File("") : path.toFile(); + return path == null ? new java.io.File("") : path.toFile(); // checkstyle: permit this instantiation } /** diff --git a/src/java/org/apache/cassandra/io/util/PathUtils.java b/src/java/org/apache/cassandra/io/util/PathUtils.java index 28ce020dc8..26f9dcc40f 100644 --- a/src/java/org/apache/cassandra/io/util/PathUtils.java +++ b/src/java/org/apache/cassandra/io/util/PathUtils.java @@ -536,7 +536,7 @@ public final class PathUtils DeleteOnExit() { - Runtime.getRuntime().addShutdownHook(new Thread(this)); + Runtime.getRuntime().addShutdownHook(new Thread(this)); // checkstyle: permit this instantiation } synchronized void add(Path path, boolean recursive) diff --git a/src/java/org/apache/cassandra/net/AsyncChannelPromise.java b/src/java/org/apache/cassandra/net/AsyncChannelPromise.java index 142c3e2cf9..00253fa72a 100644 --- a/src/java/org/apache/cassandra/net/AsyncChannelPromise.java +++ b/src/java/org/apache/cassandra/net/AsyncChannelPromise.java @@ -22,7 +22,7 @@ import io.netty.channel.Channel; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelPromise; -import io.netty.util.concurrent.Future; +import io.netty.util.concurrent.Future; // checkstyle: permit this import import io.netty.util.concurrent.GenericFutureListener; import org.apache.cassandra.utils.concurrent.AsyncPromise; diff --git a/src/java/org/apache/cassandra/net/FutureDelegate.java b/src/java/org/apache/cassandra/net/FutureDelegate.java index 7e6f9c6941..b46fa7cb22 100644 --- a/src/java/org/apache/cassandra/net/FutureDelegate.java +++ b/src/java/org/apache/cassandra/net/FutureDelegate.java @@ -21,7 +21,7 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; -import io.netty.util.concurrent.Future; +import io.netty.util.concurrent.Future; // checkstyle: permit this import import io.netty.util.concurrent.GenericFutureListener; /** diff --git a/src/java/org/apache/cassandra/net/FutureResult.java b/src/java/org/apache/cassandra/net/FutureResult.java index 8ad2e7b93e..e2648c599c 100644 --- a/src/java/org/apache/cassandra/net/FutureResult.java +++ b/src/java/org/apache/cassandra/net/FutureResult.java @@ -17,7 +17,7 @@ */ package org.apache.cassandra.net; -import io.netty.util.concurrent.Future; +import io.netty.util.concurrent.Future; //checkstyle: permit this import /** * An abstraction for yielding a result performed by an asynchronous task, diff --git a/src/java/org/apache/cassandra/net/InboundSockets.java b/src/java/org/apache/cassandra/net/InboundSockets.java index d1f76d3ea8..b0e9ad156a 100644 --- a/src/java/org/apache/cassandra/net/InboundSockets.java +++ b/src/java/org/apache/cassandra/net/InboundSockets.java @@ -31,7 +31,7 @@ import io.netty.channel.ChannelPipeline; import io.netty.channel.group.ChannelGroup; import io.netty.channel.group.DefaultChannelGroup; import io.netty.util.concurrent.DefaultEventExecutor; -import io.netty.util.concurrent.Future; +import io.netty.util.concurrent.Future; //checkstyle: permit this import import io.netty.util.concurrent.GlobalEventExecutor; import io.netty.util.concurrent.PromiseNotifier; import io.netty.util.concurrent.SucceededFuture; diff --git a/src/java/org/apache/cassandra/net/MessagingService.java b/src/java/org/apache/cassandra/net/MessagingService.java index 4359094f10..09e1817fb5 100644 --- a/src/java/org/apache/cassandra/net/MessagingService.java +++ b/src/java/org/apache/cassandra/net/MessagingService.java @@ -30,7 +30,7 @@ import org.apache.cassandra.utils.concurrent.FutureCombiner; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import io.netty.util.concurrent.Future; +import io.netty.util.concurrent.Future; //checkstyle: permit this import import org.apache.cassandra.concurrent.ScheduledExecutors; import org.apache.cassandra.concurrent.Stage; import org.apache.cassandra.config.DatabaseDescriptor; diff --git a/src/java/org/apache/cassandra/net/OutboundConnection.java b/src/java/org/apache/cassandra/net/OutboundConnection.java index ca66ed04a6..fbf0c73078 100644 --- a/src/java/org/apache/cassandra/net/OutboundConnection.java +++ b/src/java/org/apache/cassandra/net/OutboundConnection.java @@ -45,8 +45,8 @@ import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; import io.netty.channel.EventLoop; import io.netty.channel.unix.Errors; -import io.netty.util.concurrent.Future; -import io.netty.util.concurrent.Promise; +import io.netty.util.concurrent.Future; //checkstyle: permit this import +import io.netty.util.concurrent.Promise; //checkstyle: permit this import import io.netty.util.concurrent.PromiseNotifier; import io.netty.util.concurrent.SucceededFuture; import org.apache.cassandra.config.DatabaseDescriptor; diff --git a/src/java/org/apache/cassandra/net/OutboundConnectionInitiator.java b/src/java/org/apache/cassandra/net/OutboundConnectionInitiator.java index 3e556946bd..a187068ce7 100644 --- a/src/java/org/apache/cassandra/net/OutboundConnectionInitiator.java +++ b/src/java/org/apache/cassandra/net/OutboundConnectionInitiator.java @@ -24,8 +24,8 @@ import java.nio.channels.ClosedChannelException; import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; -import io.netty.util.concurrent.Future; -import io.netty.util.concurrent.Promise; +import io.netty.util.concurrent.Future; //checkstyle: permit this import +import io.netty.util.concurrent.Promise; //checkstyle: permit this import import org.apache.cassandra.utils.concurrent.AsyncPromise; import org.apache.cassandra.utils.concurrent.ImmediateFuture; import org.slf4j.Logger; diff --git a/src/java/org/apache/cassandra/net/OutboundConnections.java b/src/java/org/apache/cassandra/net/OutboundConnections.java index 9808e3f926..1c582f45e5 100644 --- a/src/java/org/apache/cassandra/net/OutboundConnections.java +++ b/src/java/org/apache/cassandra/net/OutboundConnections.java @@ -33,7 +33,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.carrotsearch.hppc.ObjectObjectHashMap; -import io.netty.util.concurrent.Future; +import io.netty.util.concurrent.Future; //checkstyle: permit this import import org.apache.cassandra.locator.InetAddressAndPort; import org.apache.cassandra.metrics.InternodeOutboundMetrics; import org.apache.cassandra.utils.NoSpamLogger; diff --git a/src/java/org/apache/cassandra/streaming/StreamSession.java b/src/java/org/apache/cassandra/streaming/StreamSession.java index 4499024aac..4e1f3e1b16 100644 --- a/src/java/org/apache/cassandra/streaming/StreamSession.java +++ b/src/java/org/apache/cassandra/streaming/StreamSession.java @@ -30,7 +30,7 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.*; import io.netty.channel.Channel; -import io.netty.util.concurrent.Future; +import io.netty.util.concurrent.Future; //checkstyle: permit this import import org.apache.cassandra.concurrent.ScheduledExecutors; import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.locator.RangesAtEndpoint; diff --git a/src/java/org/apache/cassandra/streaming/StreamingChannel.java b/src/java/org/apache/cassandra/streaming/StreamingChannel.java index 18bb2b716a..f49089c48a 100644 --- a/src/java/org/apache/cassandra/streaming/StreamingChannel.java +++ b/src/java/org/apache/cassandra/streaming/StreamingChannel.java @@ -22,7 +22,7 @@ import java.io.IOException; import java.net.InetSocketAddress; import java.util.function.IntFunction; -import io.netty.util.concurrent.Future; +import io.netty.util.concurrent.Future; //checkstyle: permit this import import org.apache.cassandra.streaming.async.NettyStreamingConnectionFactory; import org.apache.cassandra.utils.Shared; diff --git a/src/java/org/apache/cassandra/streaming/async/NettyStreamingConnectionFactory.java b/src/java/org/apache/cassandra/streaming/async/NettyStreamingConnectionFactory.java index a6261bfe81..946df59892 100644 --- a/src/java/org/apache/cassandra/streaming/async/NettyStreamingConnectionFactory.java +++ b/src/java/org/apache/cassandra/streaming/async/NettyStreamingConnectionFactory.java @@ -26,7 +26,7 @@ import com.google.common.annotations.VisibleForTesting; import io.netty.channel.Channel; import io.netty.channel.ChannelPipeline; import io.netty.channel.EventLoop; -import io.netty.util.concurrent.Future; +import io.netty.util.concurrent.Future; // checkstyle: permit this import import org.apache.cassandra.net.ConnectionCategory; import org.apache.cassandra.net.MessagingService; import org.apache.cassandra.net.OutboundConnectionInitiator.Result; diff --git a/src/java/org/apache/cassandra/streaming/async/StreamingMultiplexedChannel.java b/src/java/org/apache/cassandra/streaming/async/StreamingMultiplexedChannel.java index 711a752315..0a7a470278 100644 --- a/src/java/org/apache/cassandra/streaming/async/StreamingMultiplexedChannel.java +++ b/src/java/org/apache/cassandra/streaming/async/StreamingMultiplexedChannel.java @@ -40,11 +40,10 @@ import org.slf4j.LoggerFactory; import io.netty.channel.Channel; import io.netty.channel.ChannelFuture; -import io.netty.util.concurrent.Future; +import io.netty.util.concurrent.Future; // checkstyle: permit this import import org.apache.cassandra.concurrent.ExecutorPlus; import org.apache.cassandra.streaming.StreamSession; import org.apache.cassandra.streaming.messages.IncomingStreamMessage; -import org.apache.cassandra.streaming.messages.KeepAliveMessage; import org.apache.cassandra.streaming.messages.OutgoingStreamMessage; import org.apache.cassandra.streaming.messages.StreamMessage; import org.apache.cassandra.utils.concurrent.UncheckedInterruptedException; @@ -57,7 +56,6 @@ import static java.lang.Thread.currentThread; import static java.util.concurrent.TimeUnit.*; import static org.apache.cassandra.concurrent.ExecutorFactory.Global.executorFactory; import static org.apache.cassandra.config.Config.PROPERTY_PREFIX; -import static org.apache.cassandra.config.DatabaseDescriptor.getStreamingKeepAlivePeriod; import static org.apache.cassandra.streaming.StreamSession.createLogTag; import static org.apache.cassandra.streaming.messages.StreamMessage.serialize; import static org.apache.cassandra.streaming.messages.StreamMessage.serializedSize; diff --git a/src/java/org/apache/cassandra/transport/SimpleClient.java b/src/java/org/apache/cassandra/transport/SimpleClient.java index 0e98a323cf..74a8b6e088 100644 --- a/src/java/org/apache/cassandra/transport/SimpleClient.java +++ b/src/java/org/apache/cassandra/transport/SimpleClient.java @@ -38,7 +38,7 @@ import io.netty.channel.nio.NioEventLoopGroup; import io.netty.handler.codec.MessageToMessageDecoder; import io.netty.handler.codec.MessageToMessageEncoder; import io.netty.handler.ssl.SslContext; -import io.netty.util.concurrent.Promise; +import io.netty.util.concurrent.Promise; // checkstyle: permit this import import io.netty.util.concurrent.PromiseCombiner; import io.netty.util.internal.logging.InternalLoggerFactory; import io.netty.util.internal.logging.Slf4JLoggerFactory; diff --git a/src/java/org/apache/cassandra/utils/Clock.java b/src/java/org/apache/cassandra/utils/Clock.java index 1f394930c8..d1a73372a8 100644 --- a/src/java/org/apache/cassandra/utils/Clock.java +++ b/src/java/org/apache/cassandra/utils/Clock.java @@ -91,7 +91,7 @@ public interface Clock */ public long nanoTime() { - return System.nanoTime(); + return System.nanoTime(); // checkstyle: permit system clock } /** @@ -99,7 +99,7 @@ public interface Clock */ public long currentTimeMillis() { - return System.currentTimeMillis(); + return System.currentTimeMillis(); // checkstyle: permit system clock } } diff --git a/src/java/org/apache/cassandra/utils/binlog/BinLogArchiver.java b/src/java/org/apache/cassandra/utils/binlog/BinLogArchiver.java index 9a6f0bc71c..f0096292a7 100644 --- a/src/java/org/apache/cassandra/utils/binlog/BinLogArchiver.java +++ b/src/java/org/apache/cassandra/utils/binlog/BinLogArchiver.java @@ -18,7 +18,7 @@ package org.apache.cassandra.utils.binlog; -import java.io.File; +import java.io.File; // checkstyle: permit this import import net.openhft.chronicle.queue.impl.StoreFileListener; diff --git a/src/java/org/apache/cassandra/utils/binlog/DeletingArchiver.java b/src/java/org/apache/cassandra/utils/binlog/DeletingArchiver.java index 3bdbb8fd84..44bdc8e1df 100644 --- a/src/java/org/apache/cassandra/utils/binlog/DeletingArchiver.java +++ b/src/java/org/apache/cassandra/utils/binlog/DeletingArchiver.java @@ -18,7 +18,7 @@ package org.apache.cassandra.utils.binlog; -import java.io.File; +import java.io.File; // checkstyle: permit this import import java.util.Queue; import java.util.concurrent.ConcurrentLinkedQueue; diff --git a/src/java/org/apache/cassandra/utils/binlog/ExternalArchiver.java b/src/java/org/apache/cassandra/utils/binlog/ExternalArchiver.java index 173c539a82..86b65109d6 100644 --- a/src/java/org/apache/cassandra/utils/binlog/ExternalArchiver.java +++ b/src/java/org/apache/cassandra/utils/binlog/ExternalArchiver.java @@ -18,7 +18,7 @@ package org.apache.cassandra.utils.binlog; -import java.io.File; +import java.io.File; // checkstyle: permit this import import java.io.IOException; import java.nio.file.Path; import java.util.concurrent.DelayQueue; diff --git a/src/java/org/apache/cassandra/utils/concurrent/AbstractFuture.java b/src/java/org/apache/cassandra/utils/concurrent/AbstractFuture.java index 111744546f..b8944f9fee 100644 --- a/src/java/org/apache/cassandra/utils/concurrent/AbstractFuture.java +++ b/src/java/org/apache/cassandra/utils/concurrent/AbstractFuture.java @@ -32,7 +32,7 @@ import javax.annotation.Nullable; import com.google.common.base.Preconditions; import com.google.common.util.concurrent.AsyncFunction; import com.google.common.util.concurrent.FutureCallback; -import com.google.common.util.concurrent.ListenableFuture; +import com.google.common.util.concurrent.ListenableFuture; // checkstyle: permit this import import io.netty.util.concurrent.GenericFutureListener; import io.netty.util.internal.ThrowableUtil; diff --git a/src/java/org/apache/cassandra/utils/concurrent/AsyncFuture.java b/src/java/org/apache/cassandra/utils/concurrent/AsyncFuture.java index 296584b38c..a7b7a6ab01 100644 --- a/src/java/org/apache/cassandra/utils/concurrent/AsyncFuture.java +++ b/src/java/org/apache/cassandra/utils/concurrent/AsyncFuture.java @@ -24,7 +24,7 @@ import java.util.function.Function; import javax.annotation.Nullable; import com.google.common.util.concurrent.AsyncFunction; -import com.google.common.util.concurrent.ListenableFuture; +import com.google.common.util.concurrent.ListenableFuture; // checkstyle: permit this import import io.netty.util.concurrent.GenericFutureListener; diff --git a/src/java/org/apache/cassandra/utils/concurrent/AsyncPromise.java b/src/java/org/apache/cassandra/utils/concurrent/AsyncPromise.java index 48c55a8eec..61b58184db 100644 --- a/src/java/org/apache/cassandra/utils/concurrent/AsyncPromise.java +++ b/src/java/org/apache/cassandra/utils/concurrent/AsyncPromise.java @@ -23,7 +23,7 @@ import java.util.function.Consumer; import com.google.common.util.concurrent.FutureCallback; -import io.netty.util.concurrent.Future; +import io.netty.util.concurrent.Future; // checkstyle: permit this import import io.netty.util.concurrent.GenericFutureListener; /** diff --git a/src/java/org/apache/cassandra/utils/concurrent/BlockingQueues.java b/src/java/org/apache/cassandra/utils/concurrent/BlockingQueues.java index a7425d2018..4d79ed3732 100644 --- a/src/java/org/apache/cassandra/utils/concurrent/BlockingQueues.java +++ b/src/java/org/apache/cassandra/utils/concurrent/BlockingQueues.java @@ -22,8 +22,8 @@ import java.util.Collection; import java.util.Iterator; import java.util.Queue; import java.util.concurrent.BlockingQueue; -import java.util.concurrent.LinkedBlockingQueue; -import java.util.concurrent.SynchronousQueue; +import java.util.concurrent.LinkedBlockingQueue; // checkstyle: permit this import +import java.util.concurrent.SynchronousQueue; // checkstyle: permit this import import java.util.concurrent.TimeUnit; import org.apache.cassandra.utils.Intercept; diff --git a/src/java/org/apache/cassandra/utils/concurrent/Future.java b/src/java/org/apache/cassandra/utils/concurrent/Future.java index 4454a2e469..22b15cc069 100644 --- a/src/java/org/apache/cassandra/utils/concurrent/Future.java +++ b/src/java/org/apache/cassandra/utils/concurrent/Future.java @@ -25,7 +25,7 @@ import java.util.function.Function; import com.google.common.util.concurrent.AsyncFunction; import com.google.common.util.concurrent.FutureCallback; -import com.google.common.util.concurrent.ListenableFuture; +import com.google.common.util.concurrent.ListenableFuture; // checkstyle: permit this import import io.netty.util.concurrent.GenericFutureListener; diff --git a/src/java/org/apache/cassandra/utils/concurrent/Semaphore.java b/src/java/org/apache/cassandra/utils/concurrent/Semaphore.java index 66dd543687..c3f03a5ab9 100644 --- a/src/java/org/apache/cassandra/utils/concurrent/Semaphore.java +++ b/src/java/org/apache/cassandra/utils/concurrent/Semaphore.java @@ -252,7 +252,7 @@ public interface Semaphore public FairJDK(int permits) { - wrapped = new java.util.concurrent.Semaphore(permits, true); + wrapped = new java.util.concurrent.Semaphore(permits, true); // checkstyle: permit this instantiation } /** diff --git a/src/java/org/apache/cassandra/utils/concurrent/SyncFuture.java b/src/java/org/apache/cassandra/utils/concurrent/SyncFuture.java index 17b0423ee1..963596976a 100644 --- a/src/java/org/apache/cassandra/utils/concurrent/SyncFuture.java +++ b/src/java/org/apache/cassandra/utils/concurrent/SyncFuture.java @@ -24,7 +24,7 @@ import java.util.function.Function; import javax.annotation.Nullable; import com.google.common.util.concurrent.AsyncFunction; -import com.google.common.util.concurrent.ListenableFuture; +import com.google.common.util.concurrent.ListenableFuture; // checkstyle: permit this import import io.netty.util.concurrent.GenericFutureListener;