You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datasketches.apache.org by le...@apache.org on 2020/01/09 21:47:13 UTC

[incubator-datasketches-characterization] branch master updated: Mostly fix LGTM warnings.

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

leerho pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-datasketches-characterization.git


The following commit(s) were added to refs/heads/master by this push:
     new 3d9f171  Mostly fix LGTM warnings.
3d9f171 is described below

commit 3d9f171b3ed74f1142437603d829f89f513b5049
Author: Lee Rhodes <le...@users.noreply.github.com>
AuthorDate: Thu Jan 9 13:47:03 2020 -0800

    Mostly fix LGTM warnings.
---
 src/main/java/org/apache/datasketches/Files.java       |  9 ++++++---
 src/main/java/org/apache/datasketches/Properties.java  |  4 ++--
 src/main/java/org/apache/datasketches/UnzipFiles.java  |  4 +++-
 .../characterization/hll/DruidHllAccuracyProfile.java  |  6 +++---
 .../characterization/hll/HllAccuracyProfile.java       | 18 +++++++++---------
 .../characterization/hll/ZetaHllAccuracyProfile.java   |  6 +++---
 .../characterization/memory/BaseUtf8SpeedProfile.java  |  2 +-
 .../characterization/theta/ThetaAccuracyProfile.java   |  6 +++---
 .../theta/ThetaUnionAccuracyProfile.java               |  6 +++---
 .../theta/ThetaUnionAccuracyProfile2.java              |  6 +++---
 .../concurrent/ConcurrentThetaAccuracyProfile.java     |  6 +++---
 src/main/resources/hll/HllUnionUpdateSpeedJob.conf     |  2 +-
 12 files changed, 40 insertions(+), 35 deletions(-)

diff --git a/src/main/java/org/apache/datasketches/Files.java b/src/main/java/org/apache/datasketches/Files.java
index 0b914e8..282f63a 100644
--- a/src/main/java/org/apache/datasketches/Files.java
+++ b/src/main/java/org/apache/datasketches/Files.java
@@ -711,6 +711,7 @@ public final class Files {
    * @return a BufferedReader object
    * @throws RuntimeException if FileNotFoundException occurs.
    */
+  //TODO This could have potential resource leaks
   public static BufferedReader openBufferedReader(final File file, final int bufSize,
       final Charset charset) {
     final int bufSz = (bufSize < DEFAULT_BUFSIZE) ? DEFAULT_BUFSIZE : bufSize;
@@ -734,6 +735,7 @@ public final class Files {
    * @param fileName the name of the file to configure
    * @return a PrintWriter
    */
+  //TODO This could have potential output resource leaks
   public static final PrintWriter openPrintWriter(final String fileName) {
     File file = null;
     PrintWriter pw = null;
@@ -751,8 +753,8 @@ public final class Files {
       final BufferedWriter bw;
       try {
         final FileOutputStream fos = new FileOutputStream(file, true);
-        final OutputStreamWriter osw = new OutputStreamWriter(fos, Charset.defaultCharset());
-        bw = new BufferedWriter(osw, 8192);
+        final OutputStreamWriter osw = new OutputStreamWriter(fos, Charset.defaultCharset()); //LEAK?
+        bw = new BufferedWriter(osw, 8192); //LEAK?
       } catch (final IOException e) {
         // never opened, so don't close it.
         throw new RuntimeException("Could not create: " + file.getPath() + LS + e);
@@ -941,13 +943,14 @@ public final class Files {
    * @return BufferedWriter object
    * @throws RuntimeException if IOException occurs.
    */
+  //TODO This could have potential output resource leaks
   public static BufferedWriter openBufferedWriter(final File file, final int bufSize,
       final boolean append, final Charset charset) {
     final int bufSz = (bufSize < DEFAULT_BUFSIZE) ? DEFAULT_BUFSIZE : bufSize;
     BufferedWriter out = null; // default bufsize is 8192.
     try {
       final FileOutputStream fos = new FileOutputStream(file, append);
-      final OutputStreamWriter osw = new OutputStreamWriter(fos, charset);
+      final OutputStreamWriter osw = new OutputStreamWriter(fos, charset); //LEAK?
       out = new BufferedWriter(osw, bufSz);
     } catch (final IOException e) {
       // never opened, so don't close it.
diff --git a/src/main/java/org/apache/datasketches/Properties.java b/src/main/java/org/apache/datasketches/Properties.java
index 0c995f3..335ea20 100644
--- a/src/main/java/org/apache/datasketches/Properties.java
+++ b/src/main/java/org/apache/datasketches/Properties.java
@@ -144,8 +144,8 @@ public class Properties {
   public static String removeLastPairSeparator(final String kvPairs, final char pairSeparator) {
     final StringBuilder sb = new StringBuilder(kvPairs);
     final int len = sb.length();
-    final Character last = sb.charAt(len - 1);
-    if (last.equals(pairSeparator)) {
+    final char last = sb.charAt(len - 1);
+    if (last == pairSeparator) {
       sb.deleteCharAt(len - 1);
     }
     return sb.toString();
diff --git a/src/main/java/org/apache/datasketches/UnzipFiles.java b/src/main/java/org/apache/datasketches/UnzipFiles.java
index daecc08..57b30e6 100644
--- a/src/main/java/org/apache/datasketches/UnzipFiles.java
+++ b/src/main/java/org/apache/datasketches/UnzipFiles.java
@@ -52,7 +52,9 @@ public class UnzipFiles {
       while ((ze != null) && !ze.getName().startsWith("__")) {
         final String fileName = ze.getName();
         final File newFile = new File(destDir + File.separator + fileName);
-
+        if (!newFile.toPath().normalize().startsWith(new File(destDir).toPath())) {
+          throw new IOException("Bad zip entry");
+        }
         //create directories for sub directories in zip
         new File(newFile.getParent()).mkdirs();
         try (FileOutputStream fos = new FileOutputStream(newFile)) {
diff --git a/src/main/java/org/apache/datasketches/characterization/hll/DruidHllAccuracyProfile.java b/src/main/java/org/apache/datasketches/characterization/hll/DruidHllAccuracyProfile.java
index 262d3bc..4bbc0dc 100644
--- a/src/main/java/org/apache/datasketches/characterization/hll/DruidHllAccuracyProfile.java
+++ b/src/main/java/org/apache/datasketches/characterization/hll/DruidHllAccuracyProfile.java
@@ -42,11 +42,11 @@ public class DruidHllAccuracyProfile extends BaseAccuracyProfile {
   public void doTrial() {
     final int qArrLen = qArr.length;
     sketch = HyperLogLogCollector.makeLatestCollector();
-    int lastUniques = 0;
+    long lastUniques = 0;
     for (int i = 0; i < qArrLen; i++) {
       final AccuracyStats q = qArr[i];
-      final double delta = q.trueValue - lastUniques;
-      for (int u = 0; u < delta; u++) {
+      final long delta = (long)(q.trueValue - lastUniques);
+      for (long u = 0; u < delta; u++) {
         if (useString) {
           final String vstr = Long.toHexString(++vIn);
           sketch.add(hash.hash(vstr));
diff --git a/src/main/java/org/apache/datasketches/characterization/hll/HllAccuracyProfile.java b/src/main/java/org/apache/datasketches/characterization/hll/HllAccuracyProfile.java
index cfea470..5612720 100644
--- a/src/main/java/org/apache/datasketches/characterization/hll/HllAccuracyProfile.java
+++ b/src/main/java/org/apache/datasketches/characterization/hll/HllAccuracyProfile.java
@@ -57,14 +57,14 @@ public class HllAccuracyProfile extends BaseAccuracyProfile {
   public void doTrial() {
     final int qArrLen = qArr.length;
     sketch.reset(); //reuse the same sketch
-    int lastUniques = 0;
+    long lastUniques = 0;
     final int sw = (useCharArr ? 2 : 0) | (useComposite ? 1 : 0);
     switch (sw) {
       case 0: { //use longs; use HIP
         for (int i = 0; i < qArrLen; i++) {
           final AccuracyStats q = qArr[i];
-          final double delta = q.trueValue - lastUniques;
-          for (int u = 0; u < delta; u++) {
+          final long delta = (long)(q.trueValue - lastUniques);
+          for (long u = 0; u < delta; u++) {
             sketch.update(++vIn);
           }
           lastUniques += delta;
@@ -79,8 +79,8 @@ public class HllAccuracyProfile extends BaseAccuracyProfile {
       case 1: { //use longs; use Composite
         for (int i = 0; i < qArrLen; i++) {
           final AccuracyStats q = qArr[i];
-          final double delta = q.trueValue - lastUniques;
-          for (int u = 0; u < delta; u++) {
+          final long delta = (long)(q.trueValue - lastUniques);
+          for (long u = 0; u < delta; u++) {
             sketch.update(++vIn);
           }
           lastUniques += delta;
@@ -95,8 +95,8 @@ public class HllAccuracyProfile extends BaseAccuracyProfile {
       case 2: { //use char[]; use HIP
         for (int i = 0; i < qArrLen; i++) {
           final AccuracyStats q = qArr[i];
-          final double delta = q.trueValue - lastUniques;
-          for (int u = 0; u < delta; u++) {
+          final long delta = (long)(q.trueValue - lastUniques);
+          for (long u = 0; u < delta; u++) {
             final String vstr = Long.toHexString(++vIn);
             sketch.update(vstr.toCharArray());
           }
@@ -112,8 +112,8 @@ public class HllAccuracyProfile extends BaseAccuracyProfile {
       case 3: { //use char[]; use Composite
         for (int i = 0; i < qArrLen; i++) {
           final AccuracyStats q = qArr[i];
-          final double delta = q.trueValue - lastUniques;
-          for (int u = 0; u < delta; u++) {
+          final long delta = (long)(q.trueValue - lastUniques);
+          for (long u = 0; u < delta; u++) {
             final String vstr = Long.toHexString(++vIn);
             sketch.update(vstr.toCharArray());
           }
diff --git a/src/main/java/org/apache/datasketches/characterization/hll/ZetaHllAccuracyProfile.java b/src/main/java/org/apache/datasketches/characterization/hll/ZetaHllAccuracyProfile.java
index 0e06ae4..804af50 100644
--- a/src/main/java/org/apache/datasketches/characterization/hll/ZetaHllAccuracyProfile.java
+++ b/src/main/java/org/apache/datasketches/characterization/hll/ZetaHllAccuracyProfile.java
@@ -68,11 +68,11 @@ public class ZetaHllAccuracyProfile extends BaseAccuracyProfile {
   public void doTrial() {
     final int qArrLen = qArr.length;
     reset();
-    int lastUniques = 0;
+    long lastUniques = 0;
     for (int i = 0; i < qArrLen; i++) {
       final AccuracyStats q = qArr[i];
-      final double delta = q.trueValue - lastUniques;
-      for (int u = 0; u < delta; u++) {
+      final long delta = (long)(q.trueValue - lastUniques);
+      for (long u = 0; u < delta; u++) {
         sketch.add(++vIn);
       }
       lastUniques += delta;
diff --git a/src/main/java/org/apache/datasketches/characterization/memory/BaseUtf8SpeedProfile.java b/src/main/java/org/apache/datasketches/characterization/memory/BaseUtf8SpeedProfile.java
index 12e0266..0cdb713 100644
--- a/src/main/java/org/apache/datasketches/characterization/memory/BaseUtf8SpeedProfile.java
+++ b/src/main/java/org/apache/datasketches/characterization/memory/BaseUtf8SpeedProfile.java
@@ -103,7 +103,7 @@ public abstract class BaseUtf8SpeedProfile implements JobProfile {
 
     String getRow() {
       final double lgCP = Math.log(numCPPerTrial) / LN2;
-      final long totCP = trials * numCPPerTrial;
+      final long totCP = (long)trials * numCPPerTrial;
       final double meanJavaEncodePerCP_nS = sumJavaEncodeTrials_nS / totCP;
       final double meanJavaDecodePerCP_nS = sumJavaDecodeTrials_nS / totCP;
       final double meanMemEncodePerCP_nS = sumMemEncodeTrials_nS / totCP;
diff --git a/src/main/java/org/apache/datasketches/characterization/theta/ThetaAccuracyProfile.java b/src/main/java/org/apache/datasketches/characterization/theta/ThetaAccuracyProfile.java
index 27f7820..bf65a83 100644
--- a/src/main/java/org/apache/datasketches/characterization/theta/ThetaAccuracyProfile.java
+++ b/src/main/java/org/apache/datasketches/characterization/theta/ThetaAccuracyProfile.java
@@ -63,11 +63,11 @@ public class ThetaAccuracyProfile extends BaseAccuracyProfile {
   public void doTrial() {
     final int qArrLen = qArr.length;
     sketch.reset(); //reuse the same sketch
-    int lastUniques = 0;
+    long lastUniques = 0;
     for (int i = 0; i < qArrLen; i++) {
       final AccuracyStats q = qArr[i];
-      final double delta = q.trueValue - lastUniques;
-      for (int u = 0; u < delta; u++) {
+      final long delta = (long)(q.trueValue - lastUniques);
+      for (long u = 0; u < delta; u++) {
         sketch.update(++vIn);
       }
       lastUniques += delta;
diff --git a/src/main/java/org/apache/datasketches/characterization/theta/ThetaUnionAccuracyProfile.java b/src/main/java/org/apache/datasketches/characterization/theta/ThetaUnionAccuracyProfile.java
index e96e97d..f2525b6 100644
--- a/src/main/java/org/apache/datasketches/characterization/theta/ThetaUnionAccuracyProfile.java
+++ b/src/main/java/org/apache/datasketches/characterization/theta/ThetaUnionAccuracyProfile.java
@@ -61,11 +61,11 @@ public class ThetaUnionAccuracyProfile extends BaseAccuracyProfile {
   public void doTrial() {
     final int qArrLen = qArr.length;
     union.reset(); //reuse the same sketch
-    int lastUniques = 0;
+    long lastUniques = 0;
     for (int i = 0; i < qArrLen; i++) {
       final AccuracyStats q = qArr[i];
-      final double delta = q.trueValue - lastUniques;
-      for (int u = 0; u < delta; u++) {
+      final long delta = (long)(q.trueValue - lastUniques);
+      for (long u = 0; u < delta; u++) {
         union.update(++vIn);
       }
       lastUniques += delta;
diff --git a/src/main/java/org/apache/datasketches/characterization/theta/ThetaUnionAccuracyProfile2.java b/src/main/java/org/apache/datasketches/characterization/theta/ThetaUnionAccuracyProfile2.java
index f4b01e0..58ccb2a 100644
--- a/src/main/java/org/apache/datasketches/characterization/theta/ThetaUnionAccuracyProfile2.java
+++ b/src/main/java/org/apache/datasketches/characterization/theta/ThetaUnionAccuracyProfile2.java
@@ -79,12 +79,12 @@ public class ThetaUnionAccuracyProfile2 extends BaseAccuracyProfile {
   public void doTrial() {
     final int qArrLen = qArr.length;
     union.reset(); //reuse the same union
-    int lastUniques = 0;
+    long lastUniques = 0;
     for (int i = 0; i < qArrLen; i++) {
       final AccuracyStats q = qArr[i];
-      final double delta = q.trueValue - lastUniques;
+      final long delta = (long)(q.trueValue - lastUniques);
       sketch.reset(); //reuse the same sketch
-      for (int u = 0; u < delta; u++) {
+      for (long u = 0; u < delta; u++) {
         sketch.update(++vIn);
       }
       if (rebuild) { sketch.rebuild(); } //Resizes down to k. Only useful with QSSketch
diff --git a/src/main/java/org/apache/datasketches/characterization/theta/concurrent/ConcurrentThetaAccuracyProfile.java b/src/main/java/org/apache/datasketches/characterization/theta/concurrent/ConcurrentThetaAccuracyProfile.java
index 26323a4..4cad487 100644
--- a/src/main/java/org/apache/datasketches/characterization/theta/concurrent/ConcurrentThetaAccuracyProfile.java
+++ b/src/main/java/org/apache/datasketches/characterization/theta/concurrent/ConcurrentThetaAccuracyProfile.java
@@ -77,11 +77,11 @@ public class ConcurrentThetaAccuracyProfile extends BaseAccuracyProfile {
     //reuse the same sketches
     sharedSketch.reset(); // reset shared sketch first
     localSketch.reset();  // local sketch reset is reading the theta from shared sketch
-    int lastUniques = 0;
+    long lastUniques = 0;
     for (int i = 0; i < qArrLen; i++) {
       final AccuracyStats q = qArr[i];
-      final double delta = q.trueValue - lastUniques;
-      for (int u = 0; u < delta; u++) {
+      final long delta = (long)(q.trueValue - lastUniques);
+      for (long u = 0; u < delta; u++) {
         localSketch.update(++vIn);
       }
       lastUniques += delta;
diff --git a/src/main/resources/hll/HllUnionUpdateSpeedJob.conf b/src/main/resources/hll/HllUnionUpdateSpeedJob.conf
index b203583..650ac33 100644
--- a/src/main/resources/hll/HllUnionUpdateSpeedJob.conf
+++ b/src/main/resources/hll/HllUnionUpdateSpeedJob.conf
@@ -40,5 +40,5 @@ ReadableDateFormat=yyyy/MM/dd HH:mm:ss z
 JobProfile=org.apache.datasketches.characterization.hll.HllUnionUpdateSpeedProfile
 LgK=12
 NumSketches=32
-TgtHllType=HLL_8
+TgtHllType=HLL_4
 Direct=true


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datasketches.apache.org
For additional commands, e-mail: commits-help@datasketches.apache.org