You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by fa...@apache.org on 2021/10/03 09:11:35 UTC

svn commit: r1893847 - in /poi/trunk: poi-ooxml/src/main/java/org/apache/poi/openxml4j/util/ poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emfplus/ poi/src/main/java/org/apache/poi/hssf/record/ poi/src/main/java/org/apache/poi/poifs/filesyste...

Author: fanningpj
Date: Sun Oct  3 09:11:35 2021
New Revision: 1893847

URL: http://svn.apache.org/viewvc?rev=1893847&view=rev
Log:
sonar issues

Modified:
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/util/ZipArchiveFakeEntry.java
    poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emfplus/HemfPlusDraw.java
    poi/trunk/poi/src/main/java/org/apache/poi/hssf/record/EmbeddedObjectRefSubRecord.java
    poi/trunk/poi/src/main/java/org/apache/poi/poifs/filesystem/TempFilePOIFSFileSystem.java
    poi/trunk/poi/src/main/java/org/apache/poi/ss/format/CellDateFormatter.java
    poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/atp/PercentRankExcFunction.java
    poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Fixed.java
    poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/PercentRank.java
    poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/DataFormatter.java
    poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/DateUtil.java
    poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/ExcelGeneralNumberFormat.java
    poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/FractionFormat.java
    poi/trunk/poi/src/main/java/org/apache/poi/ss/util/NormalisedDecimal.java

Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/util/ZipArchiveFakeEntry.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/util/ZipArchiveFakeEntry.java?rev=1893847&r1=1893846&r2=1893847&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/util/ZipArchiveFakeEntry.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/util/ZipArchiveFakeEntry.java Sun Oct  3 09:11:35 2021
@@ -104,8 +104,10 @@ import org.apache.poi.util.TempFile;
         if (encryptedTempData != null) {
             encryptedTempData.dispose();
         }
-        if (tempFile != null) {
-            tempFile.delete();
+        if (tempFile != null && tempFile.exists()) {
+            if (!tempFile.delete()) {
+                LOG.atDebug().log("temp file was already deleted (probably due to previous call to close this resource)");
+            }
         }
     }
 }

Modified: poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emfplus/HemfPlusDraw.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emfplus/HemfPlusDraw.java?rev=1893847&r1=1893846&r2=1893847&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emfplus/HemfPlusDraw.java (original)
+++ poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emfplus/HemfPlusDraw.java Sun Oct  3 09:11:35 2021
@@ -826,7 +826,7 @@ public final class HemfPlusDraw {
 
     @SuppressWarnings("squid:S2111")
     static double round10(double d) {
-        return new BigDecimal(d).setScale(10, RoundingMode.HALF_UP).doubleValue();
+        return BigDecimal.valueOf(d).setScale(10, RoundingMode.HALF_UP).doubleValue();
     }
 
     static int readRectS(LittleEndianInputStream leis, Rectangle2D bounds) {

Modified: poi/trunk/poi/src/main/java/org/apache/poi/hssf/record/EmbeddedObjectRefSubRecord.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/hssf/record/EmbeddedObjectRefSubRecord.java?rev=1893847&r1=1893846&r2=1893847&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/hssf/record/EmbeddedObjectRefSubRecord.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/hssf/record/EmbeddedObjectRefSubRecord.java Sun Oct  3 09:11:35 2021
@@ -17,6 +17,7 @@
 
 package org.apache.poi.hssf.record;
 
+import java.io.IOException;
 import java.util.Map;
 import java.util.function.Supplier;
 
@@ -179,15 +180,19 @@ public final class EmbeddedObjectRefSubR
     }
 
     private static Ptg readRefPtg(byte[] formulaRawBytes) {
-        LittleEndianInput in = new LittleEndianInputStream(new UnsynchronizedByteArrayInputStream(formulaRawBytes));
-        byte ptgSid = in.readByte();
-        switch(ptgSid) {
-            case AreaPtg.sid:   return new AreaPtg(in);
-            case Area3DPtg.sid: return new Area3DPtg(in);
-            case RefPtg.sid:    return new RefPtg(in);
-            case Ref3DPtg.sid:  return new Ref3DPtg(in);
+        try (LittleEndianInputStream in = new LittleEndianInputStream(
+                new UnsynchronizedByteArrayInputStream(formulaRawBytes))) {
+            byte ptgSid = in.readByte();
+            switch(ptgSid) {
+                case AreaPtg.sid:   return new AreaPtg(in);
+                case Area3DPtg.sid: return new Area3DPtg(in);
+                case RefPtg.sid:    return new RefPtg(in);
+                case Ref3DPtg.sid:  return new Ref3DPtg(in);
+            }
+            return null;
+        } catch (IOException e) {
+            throw new RuntimeException("Unexpected exception in readRefPtg", e);
         }
-        return null;
     }
 
     private static byte[] readRawData(LittleEndianInput in, int size) {

Modified: poi/trunk/poi/src/main/java/org/apache/poi/poifs/filesystem/TempFilePOIFSFileSystem.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/poifs/filesystem/TempFilePOIFSFileSystem.java?rev=1893847&r1=1893846&r2=1893847&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/poifs/filesystem/TempFilePOIFSFileSystem.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/poifs/filesystem/TempFilePOIFSFileSystem.java Sun Oct  3 09:11:35 2021
@@ -16,6 +16,8 @@
 ==================================================================== */
 package org.apache.poi.poifs.filesystem;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.poifs.nio.FileBackedDataSource;
 import org.apache.poi.util.Beta;
 import org.apache.poi.util.TempFile;
@@ -30,6 +32,7 @@ import java.io.IOException;
  */
 @Beta
 public class TempFilePOIFSFileSystem extends POIFSFileSystem {
+    private static Logger LOG = LogManager.getLogger(TempFilePOIFSFileSystem.class);
     File tempFile;
 
     @Override
@@ -44,7 +47,11 @@ public class TempFilePOIFSFileSystem ext
 
     @Override
     public void close() throws IOException {
-        if (tempFile != null && tempFile.exists()) tempFile.delete();
+        if (tempFile != null && tempFile.exists()) {
+            if (!tempFile.delete()) {
+                LOG.atDebug().log("temp file was already deleted (probably due to previous call to close this resource)");
+            }
+        }
         super.close();
     }
 

Modified: poi/trunk/poi/src/main/java/org/apache/poi/ss/format/CellDateFormatter.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/format/CellDateFormatter.java?rev=1893847&r1=1893846&r2=1893847&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/format/CellDateFormatter.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/format/CellDateFormatter.java Sun Oct  3 09:11:35 2021
@@ -42,7 +42,7 @@ public class CellDateFormatter extends C
     private static final Calendar EXCEL_EPOCH_CAL =
         LocaleUtil.getLocaleCalendar(1904, 0, 1);
 
-    private static final double NUM_MILLISECONDS_IN_DAY = 1000 * 60 * 60 * 24;
+    private static final int NUM_MILLISECONDS_IN_DAY = 1000 * 60 * 60 * 24;
 
     private static /* final */ CellDateFormatter SIMPLE_DATE;
 

Modified: poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/atp/PercentRankExcFunction.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/atp/PercentRankExcFunction.java?rev=1893847&r1=1893846&r2=1893847&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/atp/PercentRankExcFunction.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/atp/PercentRankExcFunction.java Sun Oct  3 09:11:35 2021
@@ -134,7 +134,7 @@ final class PercentRankExcFunction imple
             for (Double d : numbers) {
                 if (d < x) lessThanCount++;
             }
-            BigDecimal result = new BigDecimal((double)(lessThanCount + 1) / (double)(numbers.size() + 1));
+            BigDecimal result = BigDecimal.valueOf((double)(lessThanCount + 1) / (double)(numbers.size() + 1));
             return new NumberEval(PercentRank.round(result, significance));
         } else {
             int intermediateSignificance = significance < 5 ? 8 : significance + 3;

Modified: poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Fixed.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Fixed.java?rev=1893847&r1=1893846&r2=1893847&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Fixed.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Fixed.java Sun Oct  3 09:11:35 2021
@@ -75,17 +75,14 @@ public final class Fixed implements Func
                     OperandResolver.getSingleValue(
                     numberParam, srcRowIndex, srcColumnIndex);
             BigDecimal number =
-                    new BigDecimal(OperandResolver.coerceValueToDouble(numberValueEval));
+                    BigDecimal.valueOf(OperandResolver.coerceValueToDouble(numberValueEval));
             ValueEval placesValueEval =
-                    OperandResolver.getSingleValue(
-                    placesParam, srcRowIndex, srcColumnIndex);
+                    OperandResolver.getSingleValue(placesParam, srcRowIndex, srcColumnIndex);
             int places = OperandResolver.coerceValueToInt(placesValueEval);
             ValueEval skipThousandsSeparatorValueEval =
-                    OperandResolver.getSingleValue(
-                    skipThousandsSeparatorParam, srcRowIndex, srcColumnIndex);
+                    OperandResolver.getSingleValue(skipThousandsSeparatorParam, srcRowIndex, srcColumnIndex);
             Boolean skipThousandsSeparator =
-                    OperandResolver.coerceValueToBoolean(
-                    skipThousandsSeparatorValueEval, false);
+                    OperandResolver.coerceValueToBoolean(skipThousandsSeparatorValueEval, false);
 
             // Round number to respective places.
             number = number.setScale(places, RoundingMode.HALF_UP);

Modified: poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/PercentRank.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/PercentRank.java?rev=1893847&r1=1893846&r2=1893847&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/PercentRank.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/PercentRank.java Sun Oct  3 09:11:35 2021
@@ -123,8 +123,12 @@ public final class PercentRank implement
             if (greaterThanCount == numbers.size() || lessThanCount == numbers.size()) {
                 return ErrorEval.NA;
             }
-            BigDecimal result = new BigDecimal((double)lessThanCount / (double)(lessThanCount + greaterThanCount));
-            return new NumberEval(round(result, significance));
+            if (lessThanCount + greaterThanCount == 0) {
+                return new NumberEval(0);
+            } else {
+                BigDecimal result = BigDecimal.valueOf((double)lessThanCount / (double)(lessThanCount + greaterThanCount));
+                return new NumberEval(round(result, significance));
+            }
         } else {
             int intermediateSignificance = significance < 5 ? 8 : significance + 3;
             ValueEval belowRank = calculateRank(numbers, closestMatchBelow, intermediateSignificance, false);
@@ -145,7 +149,7 @@ public final class PercentRank implement
         double diff = closestMatchAbove - closestMatchBelow;
         double pos = x - closestMatchBelow;
         BigDecimal rankDiff = new BigDecimal(NumberToTextConverter.toText(aboveRank.getNumberValue() - belowRank.getNumberValue()));
-        BigDecimal result = new BigDecimal(belowRank.getNumberValue()).add(rankDiff.multiply(new BigDecimal(pos / diff)));
+        BigDecimal result = BigDecimal.valueOf(belowRank.getNumberValue()).add(rankDiff.multiply(BigDecimal.valueOf(pos / diff)));
         return new NumberEval(round(result, significance));
     }
 

Modified: poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/DataFormatter.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/DataFormatter.java?rev=1893847&r1=1893846&r2=1893847&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/DataFormatter.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/DataFormatter.java Sun Oct  3 09:11:35 2021
@@ -685,7 +685,7 @@ public class DataFormatter {
 
         private static final Pattern endsWithCommas = Pattern.compile("(,+)$");
         private final BigDecimal divider;
-        private static final BigDecimal ONE_THOUSAND = new BigDecimal(1000);
+        private static final BigDecimal ONE_THOUSAND = BigDecimal.valueOf(1000);
         private final DecimalFormat df;
         private static String trimTrailingCommas(String s) {
             return s.replaceAll(",+$", "");

Modified: poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/DateUtil.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/DateUtil.java?rev=1893847&r1=1893846&r2=1893847&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/DateUtil.java [UTF-8] (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/DateUtil.java [UTF-8] Sun Oct  3 09:11:35 2021
@@ -411,7 +411,7 @@ public class DateUtil {
             return null;
         }
 
-        BigDecimal bd = new BigDecimal(date);
+        BigDecimal bd = BigDecimal.valueOf(date);
 
         int wholeDays = bd.intValue();
 

Modified: poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/ExcelGeneralNumberFormat.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/ExcelGeneralNumberFormat.java?rev=1893847&r1=1893846&r2=1893847&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/ExcelGeneralNumberFormat.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/ExcelGeneralNumberFormat.java Sun Oct  3 09:11:35 2021
@@ -79,7 +79,7 @@ public class ExcelGeneralNumberFormat ex
         // numeric characters, with the decimal point counting as a numeric
         // character". We know there is a decimal point, so limit to 10 digits.
         // https://support.microsoft.com/en-us/kb/65903
-        final double rounded = new BigDecimal(value).round(TO_10_SF).doubleValue();
+        final double rounded = BigDecimal.valueOf(value).round(TO_10_SF).doubleValue();
         return decimalFormat.format(rounded, toAppendTo, pos);
     }
 

Modified: poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/FractionFormat.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/FractionFormat.java?rev=1893847&r1=1893846&r2=1893847&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/FractionFormat.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/FractionFormat.java Sun Oct  3 09:11:35 2021
@@ -107,7 +107,7 @@ public class FractionFormat extends Form
     @SuppressWarnings("squid:S2111")
     public String format(Number num) {
 
-        final BigDecimal doubleValue = new BigDecimal(num.doubleValue());
+        final BigDecimal doubleValue = BigDecimal.valueOf(num.doubleValue());
 
         final boolean isNeg = doubleValue.compareTo(BigDecimal.ZERO) < 0;
 

Modified: poi/trunk/poi/src/main/java/org/apache/poi/ss/util/NormalisedDecimal.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/util/NormalisedDecimal.java?rev=1893847&r1=1893846&r2=1893847&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/util/NormalisedDecimal.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/util/NormalisedDecimal.java Sun Oct  3 09:11:35 2021
@@ -225,7 +225,7 @@ final class NormalisedDecimal {
         return _fractionalPart - other._fractionalPart;
     }
     public BigDecimal getFractionalPart() {
-        return new BigDecimal(_fractionalPart).divide(BD_2_POW_24);
+        return BigDecimal.valueOf(_fractionalPart).divide(BD_2_POW_24);
     }
 
     private String getFractionalDigits() {



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