aboutsummaryrefslogtreecommitdiffstats
path: root/poi/src/main
diff options
context:
space:
mode:
authorPJ Fanning <fanningpj@apache.org>2021-10-03 09:11:35 +0000
committerPJ Fanning <fanningpj@apache.org>2021-10-03 09:11:35 +0000
commitacadd84b536b101e4c9df2d0ae1a246a271c414c (patch)
tree0ff75d2541a47828e2d3e056adba0632d432748c /poi/src/main
parent1da3708e8b9fc65ebcb9ab0095a504572b28a5e0 (diff)
downloadpoi-acadd84b536b101e4c9df2d0ae1a246a271c414c.tar.gz
poi-acadd84b536b101e4c9df2d0ae1a246a271c414c.zip
sonar issues
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1893847 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'poi/src/main')
-rw-r--r--poi/src/main/java/org/apache/poi/hssf/record/EmbeddedObjectRefSubRecord.java21
-rw-r--r--poi/src/main/java/org/apache/poi/poifs/filesystem/TempFilePOIFSFileSystem.java9
-rw-r--r--poi/src/main/java/org/apache/poi/ss/format/CellDateFormatter.java2
-rw-r--r--poi/src/main/java/org/apache/poi/ss/formula/atp/PercentRankExcFunction.java2
-rw-r--r--poi/src/main/java/org/apache/poi/ss/formula/functions/Fixed.java11
-rw-r--r--poi/src/main/java/org/apache/poi/ss/formula/functions/PercentRank.java10
-rw-r--r--poi/src/main/java/org/apache/poi/ss/usermodel/DataFormatter.java2
-rw-r--r--poi/src/main/java/org/apache/poi/ss/usermodel/DateUtil.java2
-rw-r--r--poi/src/main/java/org/apache/poi/ss/usermodel/ExcelGeneralNumberFormat.java2
-rw-r--r--poi/src/main/java/org/apache/poi/ss/usermodel/FractionFormat.java2
-rw-r--r--poi/src/main/java/org/apache/poi/ss/util/NormalisedDecimal.java2
11 files changed, 39 insertions, 26 deletions
diff --git a/poi/src/main/java/org/apache/poi/hssf/record/EmbeddedObjectRefSubRecord.java b/poi/src/main/java/org/apache/poi/hssf/record/EmbeddedObjectRefSubRecord.java
index 5aeef7dfb4..dab3a2f4b9 100644
--- a/poi/src/main/java/org/apache/poi/hssf/record/EmbeddedObjectRefSubRecord.java
+++ b/poi/src/main/java/org/apache/poi/hssf/record/EmbeddedObjectRefSubRecord.java
@@ -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 EmbeddedObjectRefSubRecord extends SubRecord {
}
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) {
diff --git a/poi/src/main/java/org/apache/poi/poifs/filesystem/TempFilePOIFSFileSystem.java b/poi/src/main/java/org/apache/poi/poifs/filesystem/TempFilePOIFSFileSystem.java
index 4bfb992d75..51c453faf8 100644
--- a/poi/src/main/java/org/apache/poi/poifs/filesystem/TempFilePOIFSFileSystem.java
+++ b/poi/src/main/java/org/apache/poi/poifs/filesystem/TempFilePOIFSFileSystem.java
@@ -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 extends POIFSFileSystem {
@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();
}
diff --git a/poi/src/main/java/org/apache/poi/ss/format/CellDateFormatter.java b/poi/src/main/java/org/apache/poi/ss/format/CellDateFormatter.java
index 08afdf4b33..3644c84780 100644
--- a/poi/src/main/java/org/apache/poi/ss/format/CellDateFormatter.java
+++ b/poi/src/main/java/org/apache/poi/ss/format/CellDateFormatter.java
@@ -42,7 +42,7 @@ public class CellDateFormatter extends CellFormatter {
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;
diff --git a/poi/src/main/java/org/apache/poi/ss/formula/atp/PercentRankExcFunction.java b/poi/src/main/java/org/apache/poi/ss/formula/atp/PercentRankExcFunction.java
index 3931cb3f90..8ab6f9dad0 100644
--- a/poi/src/main/java/org/apache/poi/ss/formula/atp/PercentRankExcFunction.java
+++ b/poi/src/main/java/org/apache/poi/ss/formula/atp/PercentRankExcFunction.java
@@ -134,7 +134,7 @@ final class PercentRankExcFunction implements FreeRefFunction {
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;
diff --git a/poi/src/main/java/org/apache/poi/ss/formula/functions/Fixed.java b/poi/src/main/java/org/apache/poi/ss/formula/functions/Fixed.java
index 364a05824c..d517090c3c 100644
--- a/poi/src/main/java/org/apache/poi/ss/formula/functions/Fixed.java
+++ b/poi/src/main/java/org/apache/poi/ss/formula/functions/Fixed.java
@@ -75,17 +75,14 @@ public final class Fixed implements Function1Arg, Function2Arg, Function3Arg {
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);
diff --git a/poi/src/main/java/org/apache/poi/ss/formula/functions/PercentRank.java b/poi/src/main/java/org/apache/poi/ss/formula/functions/PercentRank.java
index 0274ebaade..a68749d9fd 100644
--- a/poi/src/main/java/org/apache/poi/ss/formula/functions/PercentRank.java
+++ b/poi/src/main/java/org/apache/poi/ss/formula/functions/PercentRank.java
@@ -123,8 +123,12 @@ public final class PercentRank implements Function {
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 implements Function {
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));
}
diff --git a/poi/src/main/java/org/apache/poi/ss/usermodel/DataFormatter.java b/poi/src/main/java/org/apache/poi/ss/usermodel/DataFormatter.java
index 7bbbd14abc..b9bc149737 100644
--- a/poi/src/main/java/org/apache/poi/ss/usermodel/DataFormatter.java
+++ b/poi/src/main/java/org/apache/poi/ss/usermodel/DataFormatter.java
@@ -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(",+$", "");
diff --git a/poi/src/main/java/org/apache/poi/ss/usermodel/DateUtil.java b/poi/src/main/java/org/apache/poi/ss/usermodel/DateUtil.java
index 036e309bf0..ba86243eb2 100644
--- a/poi/src/main/java/org/apache/poi/ss/usermodel/DateUtil.java
+++ b/poi/src/main/java/org/apache/poi/ss/usermodel/DateUtil.java
@@ -411,7 +411,7 @@ public class DateUtil {
return null;
}
- BigDecimal bd = new BigDecimal(date);
+ BigDecimal bd = BigDecimal.valueOf(date);
int wholeDays = bd.intValue();
diff --git a/poi/src/main/java/org/apache/poi/ss/usermodel/ExcelGeneralNumberFormat.java b/poi/src/main/java/org/apache/poi/ss/usermodel/ExcelGeneralNumberFormat.java
index 891c63e8d1..1c6a8dd552 100644
--- a/poi/src/main/java/org/apache/poi/ss/usermodel/ExcelGeneralNumberFormat.java
+++ b/poi/src/main/java/org/apache/poi/ss/usermodel/ExcelGeneralNumberFormat.java
@@ -79,7 +79,7 @@ public class ExcelGeneralNumberFormat extends Format {
// 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);
}
diff --git a/poi/src/main/java/org/apache/poi/ss/usermodel/FractionFormat.java b/poi/src/main/java/org/apache/poi/ss/usermodel/FractionFormat.java
index c89838a5da..8f082a0db1 100644
--- a/poi/src/main/java/org/apache/poi/ss/usermodel/FractionFormat.java
+++ b/poi/src/main/java/org/apache/poi/ss/usermodel/FractionFormat.java
@@ -107,7 +107,7 @@ public class FractionFormat extends Format {
@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;
diff --git a/poi/src/main/java/org/apache/poi/ss/util/NormalisedDecimal.java b/poi/src/main/java/org/apache/poi/ss/util/NormalisedDecimal.java
index 84337c7b4a..a06ee43fba 100644
--- a/poi/src/main/java/org/apache/poi/ss/util/NormalisedDecimal.java
+++ b/poi/src/main/java/org/apache/poi/ss/util/NormalisedDecimal.java
@@ -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() {