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

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

commit 446a04d00aee49adff258551d162ebc12ac597c2
Author: JackieTien97 <[email protected]>
AuthorDate: Mon Jun 19 12:07:50 2023 +0800

    tsfile/src/main/java/org/apache/iotdb/tsfile/common done
---
 .../apache/iotdb/tsfile/common/cache/Cache.java    |  1 +
 .../apache/iotdb/tsfile/common/cache/LRUCache.java |  3 +-
 .../iotdb/tsfile/common/conf/TSFileConfig.java     | 50 ++++++++++++----------
 .../iotdb/tsfile/common/conf/TSFileDescriptor.java | 34 +++++++--------
 .../tsfile/common/constant/JsonFormatConstant.java |  1 +
 .../tsfile/common/constant/QueryConstant.java      |  1 +
 .../tsfile/common/constant/TsFileConstant.java     |  1 +
 .../java/org/apache/iotdb/tsfile/utils/Loader.java | 11 +++--
 8 files changed, 57 insertions(+), 45 deletions(-)

diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/cache/Cache.java 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/cache/Cache.java
index 944f4a8bf0b..49e73188f66 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/cache/Cache.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/cache/Cache.java
@@ -16,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 package org.apache.iotdb.tsfile.common.cache;
 
 import org.apache.iotdb.tsfile.exception.cache.CacheException;
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/cache/LRUCache.java 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/cache/LRUCache.java
index 76e7557a629..c7db1b5ea0d 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/cache/LRUCache.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/cache/LRUCache.java
@@ -16,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 package org.apache.iotdb.tsfile.common.cache;
 
 import java.io.IOException;
@@ -27,7 +28,7 @@ public abstract class LRUCache<K, T> implements Cache<K, T> {
 
   protected Map<K, T> cache;
 
-  public LRUCache(int cacheSize) {
+  protected LRUCache(int cacheSize) {
     this.cache =
         new LinkedHashMap<K, T>(cacheSize, 0.75f, true) {
           @Override
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileConfig.java 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileConfig.java
index 9c05a42b765..99851b77ded 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileConfig.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileConfig.java
@@ -16,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 package org.apache.iotdb.tsfile.common.conf;
 
 import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
@@ -25,12 +26,13 @@ import org.apache.iotdb.tsfile.utils.FSUtils;
 
 import java.io.Serializable;
 import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 import java.util.Properties;
 
 /** TSFileConfig is a configuration class. Every variable is public and has 
default value. */
 public class TSFileConfig implements Serializable {
 
-  /** encoding configuration */
+  /** encoding configuration. */
   public static final int RLE_MIN_REPEATED_NUM = 8;
 
   public static final int RLE_MAX_REPEATED_NUM = 0x7FFF;
@@ -56,15 +58,15 @@ public class TSFileConfig implements Serializable {
   public static final int BYTE_SIZE_PER_CHAR = 4;
 
   public static final String STRING_ENCODING = "UTF-8";
-  public static final Charset STRING_CHARSET = 
Charset.forName(STRING_ENCODING);
+  public static final Charset STRING_CHARSET = StandardCharsets.UTF_8;
   public static final String CONFIG_FILE_NAME = "iotdb-common.properties";
   public static final String MAGIC_STRING = "TsFile";
   public static final String VERSION_NUMBER_V2 = "000002";
   public static final String VERSION_NUMBER_V1 = "000001";
-  /** version number is changed to use 1 byte to represent since version 3 */
+  /** version number is changed to use 1 byte to represent since version 3. */
   public static final byte VERSION_NUMBER = 0x03;
 
-  /** Bloom filter constrain */
+  /** Bloom filter constrain. */
   public static final double MIN_BLOOM_FILTER_ERROR_RATE = 0.01;
 
   public static final double MAX_BLOOM_FILTER_ERROR_RATE = 0.1;
@@ -77,7 +79,7 @@ public class TSFileConfig implements Serializable {
   private int pageSizeInByte = 64 * 1024;
   /** The maximum number of data points in a page, default value is 10000. */
   private int maxNumberOfPointsInPage = 10_000;
-  /** The maximum degree of a metadataIndex node, default value is 256 */
+  /** The maximum degree of a metadataIndex node, default value is 256. */
   private int maxDegreeOfIndexNode = 256;
   /** Data type for input timestamp, TsFile supports INT64. */
   private TSDataType timeSeriesDataType = TSDataType.INT64;
@@ -99,7 +101,7 @@ public class TSFileConfig implements Serializable {
   private String valueEncoder = "PLAIN";
   /** Default bit width of RLE encoding is 8. */
   private int rleBitWidth = 8;
-  /** Default block size of two-diff. delta encoding is 128 */
+  /** Default block size of two-diff. delta encoding is 128. */
   private int deltaBlockSize = 128;
   /** Default frequency type is SINGLE_FREQ. */
   private String freqType = "SINGLE_FREQ";
@@ -115,21 +117,21 @@ public class TSFileConfig implements Serializable {
   private int pageCheckSizeThreshold = 100;
   /** Default endian value is BIG_ENDIAN. */
   private String endian = "BIG_ENDIAN";
-  /** Default storage is in local file system */
-  private FSType[] TSFileStorageFs = new FSType[] {FSType.LOCAL};
+  /** Default storage is in local file system. */
+  private FSType[] tSFileStorageFs = new FSType[] {FSType.LOCAL};
   /** Default core-site.xml file path is /etc/hadoop/conf/core-site.xml */
   private String coreSitePath = "/etc/hadoop/conf/core-site.xml";
   /** Default hdfs-site.xml file path is /etc/hadoop/conf/hdfs-site.xml */
   private String hdfsSitePath = "/etc/hadoop/conf/hdfs-site.xml";
-  /** Default hdfs ip is localhost */
+  /** Default hdfs ip is localhost. */
   private String hdfsIp = "localhost";
-  /** Default hdfs port is 9000 */
+  /** Default hdfs port is 9000. */
   private String hdfsPort = "9000";
-  /** Default DFS NameServices is hdfsnamespace */
-  private String dfsNameServices = "hdfsnamespace";
-  /** Default DFS HA name nodes are nn1 and nn2 */
+  /** Default DFS NameServices is hdfsnamespace. */
+  private String dfsNameServices = "hdfsnamespace.";
+  /** Default DFS HA name nodes are nn1 and nn2. */
   private String dfsHaNamenodes = "nn1,nn2";
-  /** Default DFS HA automatic failover is enabled */
+  /** Default DFS HA automatic failover is enabled. */
   private boolean dfsHaAutomaticFailoverEnabled = true;
   /**
    * Default DFS client failover proxy provider is
@@ -137,21 +139,21 @@ public class TSFileConfig implements Serializable {
    */
   private String dfsClientFailoverProxyProvider =
       
"org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider";
-  /** whether use kerberos to authenticate hdfs */
+  /** whether use kerberos to authenticate hdfs. */
   private boolean useKerberos = false;
-  /** full path of kerberos keytab file */
+  /** full path of kerberos keytab file. */
   private String kerberosKeytabFilePath = "/path";
-  /** kerberos pricipal */
+  /** kerberos pricipal. */
   private String kerberosPrincipal = "principal";
-  /** The acceptable error rate of bloom filter */
+  /** The acceptable error rate of bloom filter. */
   private double bloomFilterErrorRate = 0.05;
-  /** The amount of data iterate each time */
+  /** The amount of data iterate each time. */
   private int batchSize = 1000;
 
   /** Maximum capacity of a TsBlock, allow up to two pages. */
   private int maxTsBlockSizeInBytes = 128 * 1024;
 
-  /** Maximum number of lines in a single TsBlock */
+  /** Maximum number of lines in a single TsBlock. */
   private int maxTsBlockLineNumber = 1000;
 
   private int patternMatchingThreshold = 1000000;
@@ -171,7 +173,9 @@ public class TSFileConfig implements Serializable {
   /** customizedProperties, this should be empty by default. */
   private Properties customizedProperties = new Properties();
 
-  public TSFileConfig() {}
+  public TSFileConfig() {
+    // do nothing because we already give default value to each field when 
they are being declared
+  }
 
   public int getGroupSizeInByte() {
     return groupSizeInByte;
@@ -358,11 +362,11 @@ public class TSFileConfig implements Serializable {
   }
 
   public FSType[] getTSFileStorageFs() {
-    return this.TSFileStorageFs;
+    return this.tSFileStorageFs;
   }
 
   public void setTSFileStorageFs(FSType[] fileStorageFs) {
-    this.TSFileStorageFs = fileStorageFs;
+    this.tSFileStorageFs = fileStorageFs;
     FSUtils.reload();
   }
 
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileDescriptor.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileDescriptor.java
index 67c90794947..3b060507d07 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileDescriptor.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileDescriptor.java
@@ -28,8 +28,11 @@ import org.slf4j.LoggerFactory;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
 import java.net.URL;
 import java.nio.file.Paths;
+import java.util.Optional;
 import java.util.Properties;
 import java.util.Set;
 import java.util.function.Consumer;
@@ -41,7 +44,7 @@ public class TSFileDescriptor {
   private static final Logger logger = 
LoggerFactory.getLogger(TSFileDescriptor.class);
   private final TSFileConfig conf = new TSFileConfig();
 
-  /** The constructor just visible for test */
+  /** The constructor just visible for test. */
   /* private */ TSFileDescriptor() {
     init();
   }
@@ -55,10 +58,7 @@ public class TSFileDescriptor {
   }
 
   private void init() {
-    Properties properties = loadProperties();
-    if (properties != null) {
-      overwriteConfigByCustomSettings(properties);
-    }
+    loadProperties().ifPresent(this::overwriteConfigByCustomSettings);
   }
 
   public void overwriteConfigByCustomSettings(Properties properties) {
@@ -82,7 +82,7 @@ public class TSFileDescriptor {
     writer.setInt(conf::setBatchSize, "batch_size");
   }
 
-  private class PropertiesOverWriter {
+  private static class PropertiesOverWriter {
 
     private final Properties properties;
 
@@ -120,28 +120,28 @@ public class TSFileDescriptor {
     }
   }
 
-  private Properties loadProperties() {
+  private Optional<Properties> loadProperties() {
     String file = detectPropertiesFile();
     if (file != null) {
       logger.info("try loading {} from {}", TSFileConfig.CONFIG_FILE_NAME, 
file);
       return loadPropertiesFromFile(file);
     } else {
       logger.warn("not found {}, use the default configs.", 
TSFileConfig.CONFIG_FILE_NAME);
-      return null;
+      return Optional.empty();
     }
   }
 
-  private Properties loadPropertiesFromFile(String filePath) {
+  private Optional<Properties> loadPropertiesFromFile(String filePath) {
     try (FileInputStream fileInputStream = new FileInputStream(filePath)) {
       Properties properties = new Properties();
       properties.load(fileInputStream);
-      return properties;
+      return Optional.of(properties);
     } catch (FileNotFoundException e) {
       logger.warn("Fail to find config file {}", filePath);
-      return null;
+      return Optional.empty();
     } catch (IOException e) {
       logger.warn("read file ({}) failure, please check the access 
permissions.", filePath);
-      return null;
+      return Optional.empty();
     }
   }
 
@@ -177,14 +177,14 @@ public class TSFileDescriptor {
 
   private void multiplicityWarning(String resource, ClassLoader classLoader) {
     try {
-      Set<URL> urlSet = Loader.getResources(resource, classLoader);
-      if (urlSet != null && urlSet.size() > 1) {
+      Set<URI> uriSet = Loader.getResources(resource, classLoader);
+      if (uriSet.size() > 1) {
         logger.warn("Resource [{}] occurs multiple times on the classpath", 
resource);
-        for (URL url : urlSet) {
-          logger.warn("Resource [{}] occurs at [{}]", resource, url);
+        for (URI uri : uriSet) {
+          logger.warn("Resource [{}] occurs at [{}]", resource, uri);
         }
       }
-    } catch (IOException e) {
+    } catch (IOException | URISyntaxException e) {
       logger.error("Failed to get url list for {}", resource);
     }
   }
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/constant/JsonFormatConstant.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/constant/JsonFormatConstant.java
index 7a5c3694fed..f48615a81cb 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/constant/JsonFormatConstant.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/constant/JsonFormatConstant.java
@@ -16,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 package org.apache.iotdb.tsfile.common.constant;
 
 /** This class define several constant string variables used in tsfile 
schema's keys. */
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/constant/QueryConstant.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/constant/QueryConstant.java
index 7fdb1fd2582..67e41ef63cc 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/constant/QueryConstant.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/constant/QueryConstant.java
@@ -16,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 package org.apache.iotdb.tsfile.common.constant;
 
 public class QueryConstant {
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/constant/TsFileConstant.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/constant/TsFileConstant.java
index 1e4b28a7871..b7fd8ccbe15 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/constant/TsFileConstant.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/constant/TsFileConstant.java
@@ -16,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 package org.apache.iotdb.tsfile.common.constant;
 
 import java.util.regex.Pattern;
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/utils/Loader.java 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/utils/Loader.java
index 52a67f7f304..65824a21beb 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/utils/Loader.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/utils/Loader.java
@@ -19,6 +19,8 @@
 package org.apache.iotdb.tsfile.utils;
 
 import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
 import java.net.URL;
 import java.util.Enumeration;
 import java.util.HashSet;
@@ -28,13 +30,14 @@ public class Loader {
   private Loader() {}
 
   /** function for getting resources. */
-  public static Set<URL> getResources(String resource, ClassLoader 
classLoader) throws IOException {
-    Set<URL> urlSet = new HashSet<>();
+  public static Set<URI> getResources(String resource, ClassLoader classLoader)
+      throws IOException, URISyntaxException {
+    Set<URI> uriSet = new HashSet<>();
     Enumeration<URL> urlEnum = classLoader.getResources(resource);
     while (urlEnum.hasMoreElements()) {
-      urlSet.add(urlEnum.nextElement());
+      uriSet.add(urlEnum.nextElement().toURI());
     }
-    return urlSet;
+    return uriSet;
   }
 
   public static URL getResource(String resource, ClassLoader classLoader) {

Reply via email to