This is an automated email from the ASF dual-hosted git repository.

jackietien pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/master by this push:
     new 18487d7be38 Fix some SonarLint code smells of 
trigger/query_context/aggregation/modification package
18487d7be38 is described below

commit 18487d7be38ade7c8d56f4717cf3eaef7fdfb350
Author: Liao Lanyu <[email protected]>
AuthorDate: Wed Jun 21 15:17:47 2023 +0800

    Fix some SonarLint code smells of 
trigger/query_context/aggregation/modification package
---
 .../iotdb/db/engine/modification/Deletion.java     |  2 +-
 .../db/engine/modification/ModificationFile.java   |  9 ++++--
 .../io/LocalTextModificationAccessor.java          |  4 +++
 .../modification/utils/TracedBufferedReader.java   | 33 ++++++++++----------
 .../querycontext/AlignedReadOnlyMemChunk.java      |  4 +--
 .../db/engine/querycontext/QueryDataSource.java    |  8 ++---
 .../db/engine/querycontext/ReadOnlyMemChunk.java   |  5 +--
 .../db/engine/trigger/builtin/ForwardTrigger.java  |  9 ++----
 .../sink/forward/http/HTTPForwardHandler.java      | 10 +++---
 .../forward/mqtt/MQTTForwardConfiguration.java     |  1 +
 .../sink/forward/mqtt/MQTTForwardHandler.java      | 10 +++---
 .../trigger/sink/mqtt/MQTTConfiguration.java       |  3 +-
 .../db/engine/trigger/utils/BatchHandlerQueue.java | 11 ++++---
 .../engine/trigger/utils/HTTPConnectionPool.java   |  4 ++-
 .../query/QueryTimeoutRuntimeException.java        |  1 +
 .../ClassLoaderManagerInitializationException.java | 26 ++++++++++++++++
 .../iotdb/db/mpp/aggregation/Accumulator.java      |  1 +
 .../iotdb/db/mpp/aggregation/CountAccumulator.java |  4 ++-
 .../slidingwindow/SlidingWindowAggregator.java     |  4 +--
 .../SlidingWindowAggregatorFactory.java            |  4 ++-
 .../timerangeiterator/AggrWindowIterator.java      |  4 ++-
 .../timerangeiterator/ITimeRangeIterator.java      |  7 +++--
 .../timerangeiterator/PreAggrWindowIterator.java   |  6 ++--
 .../PreAggrWindowWithNaturalMonthIterator.java     |  1 +
 .../TimeRangeIteratorFactory.java                  |  1 +
 .../multilevelqueue/MultilevelPriorityQueue.java   |  4 +--
 .../iotdb/db/trigger/executor/TriggerExecutor.java |  2 +-
 .../db/trigger/executor/TriggerFireVisitor.java    |  6 ++--
 .../trigger/service/TriggerClassLoaderManager.java |  8 ++---
 .../trigger/service/TriggerManagementService.java  | 36 +++++++++++++---------
 30 files changed, 144 insertions(+), 84 deletions(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/modification/Deletion.java 
b/server/src/main/java/org/apache/iotdb/db/engine/modification/Deletion.java
index be03f2d17ba..1bc31ddc6a1 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/modification/Deletion.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/modification/Deletion.java
@@ -47,7 +47,7 @@ public class Deletion extends Modification implements 
Cloneable {
   }
 
   /**
-   * constructor of Deletion
+   * constructor of Deletion.
    *
    * @param startTime start time of delete interval
    * @param endTime end time of delete interval
diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/modification/ModificationFile.java
 
b/server/src/main/java/org/apache/iotdb/db/engine/modification/ModificationFile.java
index 54ddbc4acda..582713f8072 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/modification/ModificationFile.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/modification/ModificationFile.java
@@ -34,10 +34,10 @@ import java.io.IOException;
 import java.nio.file.FileAlreadyExistsException;
 import java.nio.file.Files;
 import java.nio.file.Paths;
+import java.security.SecureRandom;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
-import java.util.Random;
 
 /**
  * ModificationFile stores the Modifications of a TsFile or unseq file in 
another file in the same
@@ -54,7 +54,7 @@ public class ModificationFile implements AutoCloseable {
   private ModificationWriter writer;
   private ModificationReader reader;
   private String filePath;
-  private Random random = new Random();
+  private final SecureRandom random = new SecureRandom();
 
   /**
    * Construct a ModificationFile using a file as its storage.
@@ -136,7 +136,10 @@ public class ModificationFile implements AutoCloseable {
 
   public void remove() throws IOException {
     close();
-    FSFactoryProducer.getFSFactory().getFile(filePath).delete();
+    boolean deleted = 
FSFactoryProducer.getFSFactory().getFile(filePath).delete();
+    if (deleted) {
+      logger.warn("Delete ModificationFile {} failed.", filePath);
+    }
   }
 
   public boolean exists() {
diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/modification/io/LocalTextModificationAccessor.java
 
b/server/src/main/java/org/apache/iotdb/db/engine/modification/io/LocalTextModificationAccessor.java
index 88b92931875..4dac5b6d6ea 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/modification/io/LocalTextModificationAccessor.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/modification/io/LocalTextModificationAccessor.java
@@ -165,6 +165,8 @@ public class LocalTextModificationAccessor
    * index of field endTimestamp is length - 1, startTimestamp is length - 2, 
TsFile offset is
    * length - 3. Fields in index range [1, length -3) all belong to a 
timeseries path in case when
    * the path contains comma.
+   *
+   * @throws IOException if there is invalid timestamp.
    */
   private static Deletion decodeDeletion(String[] fields) throws IOException {
     if (fields.length < 4) {
@@ -200,6 +202,8 @@ public class LocalTextModificationAccessor
    * Decode a point deletion record. E.g. 
"DELETION,root.ln.wf01.wt01.temperature,111,300" the index
    * of field endTimestamp is length - 1, versionNum is length - 2. Fields in 
index range [1, length
    * - 2) compose timeseries path.
+   *
+   * @throws IOException if there is invalid timestamp.
    */
   private static Deletion decodePointDeletion(String[] fields) throws 
IOException {
     String path = "";
diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/modification/utils/TracedBufferedReader.java
 
b/server/src/main/java/org/apache/iotdb/db/engine/modification/utils/TracedBufferedReader.java
index 3b92aaf13a8..1e98f0a0ec8 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/modification/utils/TracedBufferedReader.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/modification/utils/TracedBufferedReader.java
@@ -37,24 +37,25 @@ import java.util.stream.StreamSupport;
 public class TracedBufferedReader extends Reader {
   private Reader in;
 
-  private char cb[];
-  private int nChars, nextChar;
+  private char[] cb;
+  private int nChars;
+  private int nextChar;
 
   private static final int INVALIDATED = -2;
   private static final int UNMARKED = -1;
   private int markedChar = UNMARKED;
   private int readAheadLimit = 0; /* Valid only when markedChar > 0 */
 
-  /** If the next character is a line feed, skip it */
+  /** If the next character is a line feed, skip it. */
   private boolean skipLF = false;
 
-  /** The skipLF flag when the mark was set */
+  /** The skipLF flag when the mark was set. */
   private boolean markedSkipLF = false;
 
-  private static int defaultCharBufferSize = 8192;
-  private static int defaultExpectedLineLength = 80;
+  private static final int DEFAULT_CHAR_BUFFER_SIZE = 8192;
+  private static final int DEFAULT_EXPECTED_LINE_LENGTH = 80;
 
-  /** the total bytes number already filled into cb */
+  /** the total bytes number already filled into cb. */
   private long totalFilledBytesNum = 0;
 
   /**
@@ -80,10 +81,10 @@ public class TracedBufferedReader extends Reader {
    * @param in A Reader
    */
   public TracedBufferedReader(Reader in) {
-    this(in, defaultCharBufferSize);
+    this(in, DEFAULT_CHAR_BUFFER_SIZE);
   }
 
-  /** Checks to make sure that the stream has not been closed */
+  /** Checks to make sure that the stream has not been closed. */
   private void ensureOpen() throws IOException {
     if (in == null) {
       throw new IOException("Stream closed");
@@ -100,19 +101,19 @@ public class TracedBufferedReader extends Reader {
       /* Marked */
       int delta = nextChar - markedChar;
       if (delta >= readAheadLimit) {
-        /* Gone past read-ahead limit: Invalidate mark */
+        /* Gone past read-ahead limit: Invalidate mark. */
         markedChar = INVALIDATED;
         readAheadLimit = 0;
         dst = 0;
       } else {
         if (readAheadLimit <= cb.length) {
-          /* Shuffle in the current buffer */
+          /* Shuffle in the current buffer. */
           System.arraycopy(cb, markedChar, cb, 0, delta);
           markedChar = 0;
           dst = delta;
         } else {
-          /* Reallocate buffer to accommodate read-ahead limit */
-          char ncb[] = new char[readAheadLimit];
+          /* Reallocate buffer to accommodate read-ahead limit. */
+          char[] ncb = new char[readAheadLimit];
           System.arraycopy(cb, markedChar, ncb, 0, delta);
           cb = ncb;
           markedChar = 0;
@@ -193,7 +194,7 @@ public class TracedBufferedReader extends Reader {
 
   /** {@link BufferedReader#read(char[], int, int)} */
   @Override
-  public int read(char cbuf[], int off, int len) throws IOException {
+  public int read(char[] cbuf, int off, int len) throws IOException {
     synchronized (lock) {
       ensureOpen();
       if ((off < 0)
@@ -248,7 +249,7 @@ public class TracedBufferedReader extends Reader {
         char c = 0;
         int i;
 
-        /* Skip a leftover '\n', if necessary */
+        /* Skip a leftover '\n', if necessary. */
         if (omitLF && (cb[nextChar] == '\n')) {
           nextChar++;
         }
@@ -286,7 +287,7 @@ public class TracedBufferedReader extends Reader {
         }
 
         if (s == null) {
-          s = new StringBuilder(defaultExpectedLineLength);
+          s = new StringBuilder(DEFAULT_EXPECTED_LINE_LENGTH);
         }
         s.append(cb, startChar, i - startChar);
       }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/querycontext/AlignedReadOnlyMemChunk.java
 
b/server/src/main/java/org/apache/iotdb/db/engine/querycontext/AlignedReadOnlyMemChunk.java
index 7641235e518..a3b76f0f377 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/querycontext/AlignedReadOnlyMemChunk.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/querycontext/AlignedReadOnlyMemChunk.java
@@ -34,7 +34,6 @@ import org.apache.iotdb.tsfile.read.common.TimeRange;
 import org.apache.iotdb.tsfile.read.reader.IPointReader;
 import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
 
-import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -52,6 +51,7 @@ public class AlignedReadOnlyMemChunk extends ReadOnlyMemChunk 
{
    * @param schema VectorMeasurementSchema
    * @param tvList VectorTvList
    * @param deletionList The timeRange of deletionList
+   * @throws QueryProcessException if there is unsupported data type.
    */
   public AlignedReadOnlyMemChunk(
       IMeasurementSchema schema, TVList tvList, List<List<TimeRange>> 
deletionList)
@@ -152,7 +152,7 @@ public class AlignedReadOnlyMemChunk extends 
ReadOnlyMemChunk {
   }
 
   @Override
-  public boolean isEmpty() throws IOException {
+  public boolean isEmpty() {
     return tsBlock.isEmpty();
   }
 
diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/querycontext/QueryDataSource.java
 
b/server/src/main/java/org/apache/iotdb/db/engine/querycontext/QueryDataSource.java
index 8793b2c135c..238f43ad10a 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/querycontext/QueryDataSource.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/querycontext/QueryDataSource.java
@@ -28,7 +28,7 @@ import java.util.TreeMap;
 
 /**
  * The QueryDataSource contains all the seq and unseq TsFileResources for one 
timeseries in one
- * query
+ * query.
  */
 public class QueryDataSource {
 
@@ -113,12 +113,12 @@ public class QueryDataSource {
     }
 
     index = 0;
-    int[] unSeqFileOrderIndex = new int[unseqResources.size()];
+    int[] unSeqFileOrderIndexArray = new int[unseqResources.size()];
     for (List<Integer> orderIndexes : orderTimeToIndexMap.values()) {
       for (Integer orderIndex : orderIndexes) {
-        unSeqFileOrderIndex[index++] = orderIndex;
+        unSeqFileOrderIndexArray[index++] = orderIndex;
       }
     }
-    this.unSeqFileOrderIndex = unSeqFileOrderIndex;
+    this.unSeqFileOrderIndex = unSeqFileOrderIndexArray;
   }
 }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/querycontext/ReadOnlyMemChunk.java
 
b/server/src/main/java/org/apache/iotdb/db/engine/querycontext/ReadOnlyMemChunk.java
index 68bedbbd833..1a5a1d5d764 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/querycontext/ReadOnlyMemChunk.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/querycontext/ReadOnlyMemChunk.java
@@ -16,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 package org.apache.iotdb.db.engine.querycontext;
 
 import org.apache.iotdb.db.exception.query.QueryProcessException;
@@ -41,7 +42,7 @@ import java.util.Map;
 
 /**
  * ReadOnlyMemChunk is a snapshot of the working MemTable and flushing 
memtable in the memory used
- * for querying
+ * for querying.
  */
 public class ReadOnlyMemChunk {
 
@@ -137,7 +138,7 @@ public class ReadOnlyMemChunk {
     return dataType;
   }
 
-  public boolean isEmpty() throws IOException {
+  public boolean isEmpty() {
     return tsBlock.isEmpty();
   }
 
diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/trigger/builtin/ForwardTrigger.java
 
b/server/src/main/java/org/apache/iotdb/db/engine/trigger/builtin/ForwardTrigger.java
index 9dbd1958fb1..95fd7325748 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/trigger/builtin/ForwardTrigger.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/trigger/builtin/ForwardTrigger.java
@@ -36,8 +36,6 @@ import 
org.apache.iotdb.db.engine.trigger.utils.BatchHandlerQueue;
 import org.apache.iotdb.trigger.api.TriggerAttributes;
 import org.apache.iotdb.tsfile.utils.Binary;
 
-import java.util.HashMap;
-
 public class ForwardTrigger implements Trigger {
 
   private static final String PROTOCOL_HTTP = "http";
@@ -46,7 +44,6 @@ public class ForwardTrigger implements Trigger {
   private Handler forwardHandler;
   private Configuration forwardConfig;
   private BatchHandlerQueue<Event> queue;
-  private final HashMap<String, String> labels = new HashMap<>();
   private String protocol;
 
   @Override
@@ -76,10 +73,10 @@ public class ForwardTrigger implements Trigger {
       throws SinkException {
     String endpoint = attributes.getString("endpoint");
     boolean stopIfException = 
attributes.getBooleanOrDefault("stopIfException", false);
-    HTTPForwardConfiguration forwardConfig =
+    HTTPForwardConfiguration forwardConfiguration =
         new HTTPForwardConfiguration(endpoint, stopIfException);
-    forwardConfig.checkConfig();
-    return forwardConfig;
+    forwardConfiguration.checkConfig();
+    return forwardConfiguration;
   }
 
   private MQTTForwardConfiguration createMQTTConfiguration(TriggerAttributes 
attributes)
diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/trigger/sink/forward/http/HTTPForwardHandler.java
 
b/server/src/main/java/org/apache/iotdb/db/engine/trigger/sink/forward/http/HTTPForwardHandler.java
index 1efcb2eab6a..621fc08eb4f 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/trigger/sink/forward/http/HTTPForwardHandler.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/trigger/sink/forward/http/HTTPForwardHandler.java
@@ -40,6 +40,8 @@ public class HTTPForwardHandler implements 
Handler<HTTPForwardConfiguration, HTT
 
   private static final Logger LOGGER = 
LoggerFactory.getLogger(HTTPForwardHandler.class);
 
+  private static final String FORWARD_ERROR_MESSAGE = "HTTP Forward Exception";
+
   private static CloseableHttpClient client;
   private static int referenceCount;
 
@@ -87,9 +89,9 @@ public class HTTPForwardHandler implements 
Handler<HTTPForwardConfiguration, HTT
       }
     } catch (Exception e) {
       if (config.isStopIfException()) {
-        throw new SinkException("HTTP Forward Exception", e);
+        throw new SinkException(FORWARD_ERROR_MESSAGE, e);
       }
-      LOGGER.error("HTTP Forward Exception", e);
+      LOGGER.warn(FORWARD_ERROR_MESSAGE, e);
     } finally {
       try {
         if (null != response) {
@@ -117,9 +119,9 @@ public class HTTPForwardHandler implements 
Handler<HTTPForwardConfiguration, HTT
       }
     } catch (Exception e) {
       if (config.isStopIfException()) {
-        throw new SinkException("HTTP Forward Exception", e);
+        throw new SinkException(FORWARD_ERROR_MESSAGE, e);
       }
-      LOGGER.error("HTTP Forward Exception", e);
+      LOGGER.warn(FORWARD_ERROR_MESSAGE, e);
     } finally {
       try {
         if (null != response) {
diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/trigger/sink/forward/mqtt/MQTTForwardConfiguration.java
 
b/server/src/main/java/org/apache/iotdb/db/engine/trigger/sink/forward/mqtt/MQTTForwardConfiguration.java
index b538aff003d..2956f366e53 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/trigger/sink/forward/mqtt/MQTTForwardConfiguration.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/trigger/sink/forward/mqtt/MQTTForwardConfiguration.java
@@ -37,6 +37,7 @@ public class MQTTForwardConfiguration implements 
Configuration {
   private final int poolSize;
   private final boolean stopIfException;
 
+  @SuppressWarnings("squid:S107")
   public MQTTForwardConfiguration(
       String host,
       int port,
diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/trigger/sink/forward/mqtt/MQTTForwardHandler.java
 
b/server/src/main/java/org/apache/iotdb/db/engine/trigger/sink/forward/mqtt/MQTTForwardHandler.java
index 2637c5e3c53..fe896c3e370 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/trigger/sink/forward/mqtt/MQTTForwardHandler.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/trigger/sink/forward/mqtt/MQTTForwardHandler.java
@@ -36,6 +36,8 @@ public class MQTTForwardHandler implements 
Handler<MQTTForwardConfiguration, MQT
   private MQTTConnectionPool connectionPool;
   private MQTTForwardConfiguration config;
 
+  private static final String FORWARD_ERROR_MESSAGE = "MQTT Forward Exception";
+
   @Override
   public void open(MQTTForwardConfiguration config) throws Exception {
     this.config = config;
@@ -71,9 +73,9 @@ public class MQTTForwardHandler implements 
Handler<MQTTForwardConfiguration, MQT
           config.isRetain());
     } catch (Exception e) {
       if (config.isStopIfException()) {
-        throw new SinkException("MQTT Forward Exception", e);
+        throw new SinkException(FORWARD_ERROR_MESSAGE, e);
       }
-      LOGGER.error("MQTT Forward Exception", e);
+      LOGGER.warn(FORWARD_ERROR_MESSAGE, e);
     }
   }
 
@@ -89,9 +91,9 @@ public class MQTTForwardHandler implements 
Handler<MQTTForwardConfiguration, MQT
           config.getTopic(), sb.toString().getBytes(), config.getQos(), 
config.isRetain());
     } catch (Exception e) {
       if (config.isStopIfException()) {
-        throw new SinkException("MQTT Forward Exception", e);
+        throw new SinkException(FORWARD_ERROR_MESSAGE, e);
       }
-      LOGGER.error("MQTT Forward Exception", e);
+      LOGGER.warn(FORWARD_ERROR_MESSAGE, e);
     }
   }
 }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/trigger/sink/mqtt/MQTTConfiguration.java
 
b/server/src/main/java/org/apache/iotdb/db/engine/trigger/sink/mqtt/MQTTConfiguration.java
index e673592cec4..13d047af75b 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/trigger/sink/mqtt/MQTTConfiguration.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/trigger/sink/mqtt/MQTTConfiguration.java
@@ -30,7 +30,7 @@ public class MQTTConfiguration implements Configuration {
   private final String username;
   private final String password;
 
-  /** First reconnection interval milliseconds */
+  /** First reconnection interval milliseconds. */
   private final long reconnectDelay;
 
   /**
@@ -42,6 +42,7 @@ public class MQTTConfiguration implements Configuration {
   private final PartialPath device;
   private final String[] measurements;
 
+  @SuppressWarnings("squid:S107")
   public MQTTConfiguration(
       String host,
       int port,
diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/trigger/utils/BatchHandlerQueue.java
 
b/server/src/main/java/org/apache/iotdb/db/engine/trigger/utils/BatchHandlerQueue.java
index c7b3b022a47..dc19f691913 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/trigger/utils/BatchHandlerQueue.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/trigger/utils/BatchHandlerQueue.java
@@ -32,7 +32,7 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 
 /**
- * Each Trigger instantiate a ForwardQueue
+ * Each Trigger instantiate a ForwardQueue.
  *
  * @param <T> Subclass of Event
  */
@@ -99,10 +99,6 @@ public class BatchHandlerQueue<T extends Event> {
     }
   }
 
-  private void handle(ArrayList<T> events) throws Exception {
-    handler.onEvent(events);
-  }
-
   class ForwardQueueConsumer extends Thread {
 
     ArrayBlockingQueue<T> queue;
@@ -112,6 +108,10 @@ public class BatchHandlerQueue<T extends Event> {
       this.queue = queue;
     }
 
+    private void handle(ArrayList<T> events) throws Exception {
+      handler.onEvent(events);
+    }
+
     @Override
     public void run() {
       final long maxWaitMillis = 500;
@@ -141,6 +141,7 @@ public class BatchHandlerQueue<T extends Event> {
           list.clear();
           startMillis = System.currentTimeMillis();
         } catch (InterruptedException e) {
+          Thread.currentThread().interrupt();
           break;
         } catch (Throwable t) {
           LOGGER.error("ForwardTaskQueue consumer error", t);
diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/trigger/utils/HTTPConnectionPool.java
 
b/server/src/main/java/org/apache/iotdb/db/engine/trigger/utils/HTTPConnectionPool.java
index 0a6503287dd..8259c0ad7db 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/trigger/utils/HTTPConnectionPool.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/trigger/utils/HTTPConnectionPool.java
@@ -25,6 +25,7 @@ import 
org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
 
 public class HTTPConnectionPool {
 
+  @SuppressWarnings("squid:S3077")
   private static volatile PoolingHttpClientConnectionManager 
clientConnectionManager;
 
   private HTTPConnectionPool() {}
@@ -33,7 +34,7 @@ public class HTTPConnectionPool {
     if (clientConnectionManager == null) {
       synchronized (HTTPConnectionPool.class) {
         if (clientConnectionManager == null) {
-          clientConnectionManager = new PoolingHttpClientConnectionManager();
+          PoolingHttpClientConnectionManager manager = new 
PoolingHttpClientConnectionManager();
           // Set the max number of connections
           clientConnectionManager.setMaxTotal(
               
IoTDBDescriptor.getInstance().getConfig().getTriggerForwardHTTPPoolSize());
@@ -41,6 +42,7 @@ public class HTTPConnectionPool {
           // per website, which will not affect the access of other websites
           clientConnectionManager.setDefaultMaxPerRoute(
               
IoTDBDescriptor.getInstance().getConfig().getTriggerForwardHTTPPOOLMaxPerRoute());
+          clientConnectionManager = manager;
         }
       }
     }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/exception/query/QueryTimeoutRuntimeException.java
 
b/server/src/main/java/org/apache/iotdb/db/exception/query/QueryTimeoutRuntimeException.java
index 47829294d38..59db9854061 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/exception/query/QueryTimeoutRuntimeException.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/exception/query/QueryTimeoutRuntimeException.java
@@ -16,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 package org.apache.iotdb.db.exception.query;
 
 /** This class is used to throw run time exception when query is time out. */
diff --git 
a/server/src/main/java/org/apache/iotdb/db/exception/runtime/ClassLoaderManagerInitializationException.java
 
b/server/src/main/java/org/apache/iotdb/db/exception/runtime/ClassLoaderManagerInitializationException.java
new file mode 100644
index 00000000000..611735b9a23
--- /dev/null
+++ 
b/server/src/main/java/org/apache/iotdb/db/exception/runtime/ClassLoaderManagerInitializationException.java
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.iotdb.db.exception.runtime;
+
+public class ClassLoaderManagerInitializationException extends 
RuntimeException {
+  public ClassLoaderManagerInitializationException(String message) {
+    super(message);
+  }
+}
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/Accumulator.java 
b/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/Accumulator.java
index a268c96fb61..16e0e8eba3e 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/Accumulator.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/Accumulator.java
@@ -16,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 package org.apache.iotdb.db.mpp.aggregation;
 
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/CountAccumulator.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/CountAccumulator.java
index 538c21d0fe2..ab69f6c490a 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/CountAccumulator.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/CountAccumulator.java
@@ -31,7 +31,9 @@ public class CountAccumulator implements Accumulator {
 
   private long countValue = 0;
 
-  public CountAccumulator() {}
+  public CountAccumulator() {
+    // do nothing
+  }
 
   // Column should be like: | Time | Value |
 
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/slidingwindow/SlidingWindowAggregator.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/slidingwindow/SlidingWindowAggregator.java
index 9ce9f803c92..1cff1abb125 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/slidingwindow/SlidingWindowAggregator.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/slidingwindow/SlidingWindowAggregator.java
@@ -74,10 +74,10 @@ public abstract class SlidingWindowAggregator extends 
Aggregator {
     evictingExpiredValue();
   }
 
-  /** evicting expired element in queue and reset expired aggregateResult */
+  /** evicting expired element in queue and reset expired aggregateResult. */
   protected abstract void evictingExpiredValue();
 
-  /** update queue and aggregateResult */
+  /** update queue and aggregateResult. */
   public abstract void processPartialResult(PartialAggregationResult 
partialResult);
 
   protected static class PartialAggregationResult {
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/slidingwindow/SlidingWindowAggregatorFactory.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/slidingwindow/SlidingWindowAggregatorFactory.java
index dc10bdee976..1a0b460aa8a 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/slidingwindow/SlidingWindowAggregatorFactory.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/slidingwindow/SlidingWindowAggregatorFactory.java
@@ -36,7 +36,9 @@ import java.util.Map;
 
 public class SlidingWindowAggregatorFactory {
 
-  /** comparators used for MonotonicQueueSlidingWindowAggregator */
+  private SlidingWindowAggregatorFactory() {}
+
+  /** comparators used for MonotonicQueueSlidingWindowAggregator. */
   private static final Map<TSDataType, Comparator<Column>> maxComparators =
       new EnumMap<>(TSDataType.class);
 
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/AggrWindowIterator.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/AggrWindowIterator.java
index 8a2c9a6b064..d1123e34987 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/AggrWindowIterator.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/AggrWindowIterator.java
@@ -45,6 +45,7 @@ public class AggrWindowIterator implements ITimeRangeIterator 
{
   private TimeRange curTimeRange;
   private boolean hasCachedTimeRange;
 
+  @SuppressWarnings("squid:S107")
   public AggrWindowIterator(
       long startTime,
       long endTime,
@@ -124,7 +125,8 @@ public class AggrWindowIterator implements 
ITimeRangeIterator {
       return true;
     }
 
-    long retStartTime, retEndTime;
+    long retStartTime;
+    long retEndTime;
     long curStartTime = curTimeRange.getMin();
     if (isAscending) {
       if (isSlidingStepByMonth) {
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/ITimeRangeIterator.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/ITimeRangeIterator.java
index 47a6961fd7e..5e1b0bb65a3 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/ITimeRangeIterator.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/ITimeRangeIterator.java
@@ -29,14 +29,15 @@ import org.apache.iotdb.tsfile.read.common.TimeRange;
  */
 public interface ITimeRangeIterator {
 
-  /** return the first time range by sorting order */
+  /** return the first time range by sorting order. */
   TimeRange getFirstTimeRange();
 
-  /** @return whether current iterator has next time range */
+  /** @return whether current iterator has next time range. */
   boolean hasNextTimeRange();
+
   /**
    * return the next time range according to curStartTime (the start time of 
the last returned time
-   * range)
+   * range).
    */
   TimeRange nextTimeRange();
 
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/PreAggrWindowIterator.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/PreAggrWindowIterator.java
index c0b8c3b0002..750b103d184 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/PreAggrWindowIterator.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/PreAggrWindowIterator.java
@@ -101,7 +101,8 @@ public class PreAggrWindowIterator implements 
ITimeRangeIterator {
       return true;
     }
 
-    long retStartTime, retEndTime;
+    long retStartTime;
+    long retEndTime;
     long curStartTime = curTimeRange.getMin();
     if (isAscending) {
       retStartTime = curStartTime + curSlidingStep;
@@ -181,7 +182,8 @@ public class PreAggrWindowIterator implements 
ITimeRangeIterator {
       return (long) Math.ceil(queryRange / (double) slidingStep);
     }
 
-    long interval1 = interval % slidingStep, interval2 = slidingStep - 
interval % slidingStep;
+    long interval1 = interval % slidingStep;
+    long interval2 = slidingStep - interval % slidingStep;
     long intervalNum = Math.floorDiv(queryRange, interval1 + interval2);
     long tmpStartTime = startTime + intervalNum * (interval1 + interval2);
     if (tmpStartTime + interval1 > endTime) {
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/PreAggrWindowWithNaturalMonthIterator.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/PreAggrWindowWithNaturalMonthIterator.java
index 87f6cb8630e..d1e9c8eac7f 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/PreAggrWindowWithNaturalMonthIterator.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/PreAggrWindowWithNaturalMonthIterator.java
@@ -37,6 +37,7 @@ public class PreAggrWindowWithNaturalMonthIterator implements 
ITimeRangeIterator
   private TimeRange curTimeRange;
   private boolean hasCachedTimeRange;
 
+  @SuppressWarnings("squid:S107")
   public PreAggrWindowWithNaturalMonthIterator(
       long startTime,
       long endTime,
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/TimeRangeIteratorFactory.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/TimeRangeIteratorFactory.java
index 6ba2138956f..33e8575a9a1 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/TimeRangeIteratorFactory.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/TimeRangeIteratorFactory.java
@@ -30,6 +30,7 @@ public class TimeRangeIteratorFactory {
    *
    * <p>Note: interval and slidingStep is always stand for the milliseconds in 
this method.
    */
+  @SuppressWarnings("squid:S107")
   public static ITimeRangeIterator getTimeRangeIterator(
       long startTime,
       long endTime,
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/execution/schedule/queue/multilevelqueue/MultilevelPriorityQueue.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/execution/schedule/queue/multilevelqueue/MultilevelPriorityQueue.java
index 0a87e99532f..f5327c418bc 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/execution/schedule/queue/multilevelqueue/MultilevelPriorityQueue.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/execution/schedule/queue/multilevelqueue/MultilevelPriorityQueue.java
@@ -258,8 +258,8 @@ public class MultilevelPriorityQueue extends 
IndexedBlockingReserveQueue<DriverT
       long timeAccruedToLevel =
           Math.min(
               SECONDS.toNanos(
-                  LEVEL_THRESHOLD_SECONDS[currentLevel + 1]
-                      - LEVEL_THRESHOLD_SECONDS[currentLevel]),
+                  (long) LEVEL_THRESHOLD_SECONDS[currentLevel + 1]
+                      - (long) LEVEL_THRESHOLD_SECONDS[currentLevel]),
               remainingLevelContribution);
       addLevelTime(currentLevel, timeAccruedToLevel);
       remainingLevelContribution -= timeAccruedToLevel;
diff --git 
a/server/src/main/java/org/apache/iotdb/db/trigger/executor/TriggerExecutor.java
 
b/server/src/main/java/org/apache/iotdb/db/trigger/executor/TriggerExecutor.java
index e3887388ad1..c36abcb4d02 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/trigger/executor/TriggerExecutor.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/trigger/executor/TriggerExecutor.java
@@ -100,7 +100,7 @@ public class TriggerExecutor {
       throws TriggerExecutionException {
     String errorMessage =
         String.format(
-                "Error occurred during executing Trigger(%s)#%s: %s, perhaps 
need to check whether the implementation of Trigger is correct according to the 
trigger-api description.",
+                "Error occurred during executing Trigger(%s)#%s: %s, please 
check whether the implementation of Trigger is correct according to the 
trigger-api description.",
                 triggerInformation.getTriggerName(), methodName, 
System.lineSeparator())
             + t;
     LOGGER.warn(errorMessage);
diff --git 
a/server/src/main/java/org/apache/iotdb/db/trigger/executor/TriggerFireVisitor.java
 
b/server/src/main/java/org/apache/iotdb/db/trigger/executor/TriggerFireVisitor.java
index 03089cba779..dee1e21681f 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/trigger/executor/TriggerFireVisitor.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/trigger/executor/TriggerFireVisitor.java
@@ -72,7 +72,7 @@ public class TriggerFireVisitor extends 
PlanVisitor<TriggerFireResult, TriggerEv
       ConfigNodeClientManager.getInstance();
 
   /**
-   * How many times should we retry when error occurred during firing a 
trigger on another datanode
+   * How many times should we retry when error occurred during firing a 
trigger on another datanode.
    */
   private static final int FIRE_RETRY_NUM =
       
IoTDBDescriptor.getInstance().getConfig().getRetryNumToFindStatefulTrigger();
@@ -395,7 +395,7 @@ public class TriggerFireVisitor extends 
PlanVisitor<TriggerFireResult, TriggerEv
     return result;
   }
 
-  /** Return true if the config node returns a new TDataNodeLocation */
+  /** Return true if the config node returns a new TDataNodeLocation. */
   private boolean updateLocationOfStatefulTrigger(String triggerName, int 
currentDataNodeId) {
     try (ConfigNodeClient configNodeClient =
         
CONFIG_NODE_CLIENT_MANAGER.borrowClient(ConfigNodeInfo.CONFIG_REGION_ID)) {
@@ -411,7 +411,7 @@ public class TriggerFireVisitor extends 
PlanVisitor<TriggerFireResult, TriggerEv
       return false;
     } catch (ClientManagerException | TException | IOException e) {
       LOGGER.error(
-          "Failed to update location of stateful trigger({}) through config 
node and the cause is {}.",
+          "Failed to update location of stateful trigger({}) through config 
node. The cause is {}.",
           triggerName,
           e);
       return false;
diff --git 
a/server/src/main/java/org/apache/iotdb/db/trigger/service/TriggerClassLoaderManager.java
 
b/server/src/main/java/org/apache/iotdb/db/trigger/service/TriggerClassLoaderManager.java
index e82c82e5581..d2ad204fb0b 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/trigger/service/TriggerClassLoaderManager.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/trigger/service/TriggerClassLoaderManager.java
@@ -22,6 +22,7 @@ package org.apache.iotdb.db.trigger.service;
 import org.apache.iotdb.commons.file.SystemFileFactory;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
+import 
org.apache.iotdb.db.exception.runtime.ClassLoaderManagerInitializationException;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -41,6 +42,7 @@ public class TriggerClassLoaderManager {
    * user executes CREATE TRIGGER or after the user executes DROP TRIGGER. 
Therefore, we need to
    * continuously maintain the activeClassLoader so that the classes it loads 
are always up-to-date.
    */
+  @SuppressWarnings("squid:S3077")
   private volatile TriggerClassLoader activeClassLoader;
 
   private TriggerClassLoaderManager(String libRoot) throws IOException {
@@ -57,10 +59,6 @@ public class TriggerClassLoaderManager {
     return activeClassLoader;
   }
 
-  public TriggerClassLoader getActiveClassLoader() {
-    return activeClassLoader;
-  }
-
   
/////////////////////////////////////////////////////////////////////////////////////////////////
   // singleton instance holder
   
/////////////////////////////////////////////////////////////////////////////////////////////////
@@ -73,7 +71,7 @@ public class TriggerClassLoaderManager {
         SystemFileFactory.INSTANCE.makeDirIfNecessary(CONFIG.getTriggerDir());
         INSTANCE = new TriggerClassLoaderManager(CONFIG.getTriggerDir());
       } catch (IOException e) {
-        throw new RuntimeException(e);
+        throw new ClassLoaderManagerInitializationException(e.getMessage());
       }
     }
   }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/trigger/service/TriggerManagementService.java
 
b/server/src/main/java/org/apache/iotdb/db/trigger/service/TriggerManagementService.java
index 8ba713b9e93..82a982a0281 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/trigger/service/TriggerManagementService.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/trigger/service/TriggerManagementService.java
@@ -202,6 +202,8 @@ public class TriggerManagementService {
   }
 
   /**
+   * Get all the triggers that matched this Pattern.
+   *
    * @param devicePath PathPattern
    * @return all the triggers that matched this Pattern
    */
@@ -215,21 +217,25 @@ public class TriggerManagementService {
     String triggerName = triggerInformation.getTriggerName();
     String jarName = triggerInformation.getJarName();
     if (triggerTable.containsTrigger(triggerName)
-        && 
TriggerExecutableManager.getInstance().hasFileUnderLibRoot(jarName)) {
-      if (isLocalJarConflicted(triggerInformation)) {
-        // same jar name with different md5
-        String errorMessage =
-            String.format(
-                "Failed to registered trigger %s, "
-                    + "because existed md5 of jar file for trigger %s is 
different from the new jar file. ",
-                triggerName, triggerName);
-        LOGGER.warn(errorMessage);
-        throw new TriggerManagementException(errorMessage);
-      }
+        && TriggerExecutableManager.getInstance().hasFileUnderLibRoot(jarName)
+        && isLocalJarConflicted(triggerInformation)) {
+      // same jar name with different md5
+      String errorMessage =
+          String.format(
+              "Failed to registered trigger %s, because existed"
+                  + " md5 of jar file for trigger %s is different from the new 
jar file. ",
+              triggerName, triggerName);
+      LOGGER.warn(errorMessage);
+      throw new TriggerManagementException(errorMessage);
     }
   }
 
-  /** check whether local jar is correct according to md5 */
+  /**
+   * check whether local jar is correct according to md5.
+   *
+   * @throws TriggerManagementException if failed to compute md5 of the jar 
file.
+   */
+  @SuppressWarnings("squid:S4790")
   public boolean isLocalJarConflicted(TriggerInformation triggerInformation)
       throws TriggerManagementException {
     String triggerName = triggerInformation.getTriggerName();
@@ -263,8 +269,8 @@ public class TriggerManagementService {
       } catch (IOException e) {
         String errorMessage =
             String.format(
-                "Failed to registered trigger %s, "
-                    + "because error occurred when trying to compute md5 of 
jar file for trigger %s ",
+                "Failed to registered trigger %s, because error "
+                    + "occurred when trying to compute md5 of jar file for 
trigger %s ",
                 triggerName, triggerName);
         LOGGER.warn(errorMessage, e);
         throw new TriggerManagementException(errorMessage);
@@ -331,6 +337,8 @@ public class TriggerManagementService {
   }
 
   /**
+   * Get DataNodeLocation of the given StatefulTrigger.
+   *
    * @param triggerName given trigger
    * @return TDataNodeLocation of DataNode where instance of given stateful 
trigger is on. Null if
    *     trigger not found.


Reply via email to