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/11/14 10:18:41 UTC
svn commit: r1895016 - in /poi/trunk: poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/ poi-excelant/src/test/java/org/apache/poi/ss/excelant/ poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/temp/ poi-ooxml/src/main/java/org/apache/...
Author: fanningpj
Date: Sun Nov 14 10:18:40 2021
New Revision: 1895016
URL: http://svn.apache.org/viewvc?rev=1895016&view=rev
Log:
[github-278] Resolve all SpotBugs P1 issues in Main and Test. Thanks to Andreas Reichel. This closes #278
Modified:
poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/AddDimensionedImage.java
poi/trunk/poi-excelant/src/test/java/org/apache/poi/ss/excelant/MockExcelAntWorkbookHandler.java
poi/trunk/poi-excelant/src/test/java/org/apache/poi/ss/excelant/TestBuildFile.java
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/temp/AesZipFileZipEntrySource.java
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/temp/EncryptedTempData.java
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/temp/SheetDataWriterWithDecorator.java
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/XDDFGradientFillProperties.java
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/XDDFLinearShadeProperties.java
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/XDDFPictureFillProperties.java
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFLine3DChartData.java
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFLineChartData.java
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFScatterChartData.java
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFSurface3DChartData.java
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFSurfaceChartData.java
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/text/XDDFBodyProperties.java
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/helpers/XSSFPasswordHelper.java
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFSettings.java
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/poifs/crypt/dsig/DummyKeystore.java
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/util/tests/TestIdentifierManager.java
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xslf/usermodel/TestXSLFTable.java
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/streaming/TestSXSSFWorkbook.java
poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestPictures.java
poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/Encryptor.java
poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/agile/AgileEncryptor.java
poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/binaryrc4/BinaryRC4Encryptor.java
poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/cryptoapi/CryptoAPIEncryptor.java
poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/standard/StandardEncryptor.java
poi/trunk/poi/src/main/java/org/apache/poi/ss/util/CellUtil.java
poi/trunk/poi/src/main/java/org/apache/poi/util/DefaultTempFileCreationStrategy.java
poi/trunk/poi/src/test/java/org/apache/poi/hpsf/basic/TestMetaDataIPI.java
poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestCellStyle.java
poi/trunk/poi/src/test/java/org/apache/poi/poifs/filesystem/TestFileMagic.java
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/function/ExcelFileFormatDocFunctionExtractor.java
poi/trunk/poi/src/test/java/org/apache/poi/util/TestIOUtils.java
Modified: poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/AddDimensionedImage.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/AddDimensionedImage.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/AddDimensionedImage.java (original)
+++ poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/AddDimensionedImage.java Sun Nov 14 10:18:40 2021
@@ -18,6 +18,13 @@
package org.apache.poi.examples.hssf.usermodel;
-/* Placeholder - this is now handled in the Common SS example **/
+import org.apache.poi.util.Removal;
+
+/**
+ * Placeholder Class - this is now handled in the Common SS example
+ * @deprecated in 5.1.0 - use {@link org.apache.poi.examples.ss.AddDimensionedImage}
+ */
+@Removal(version="6.0.0")
+@Deprecated
public class AddDimensionedImage extends org.apache.poi.examples.ss.AddDimensionedImage {
}
\ No newline at end of file
Modified: poi/trunk/poi-excelant/src/test/java/org/apache/poi/ss/excelant/MockExcelAntWorkbookHandler.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-excelant/src/test/java/org/apache/poi/ss/excelant/MockExcelAntWorkbookHandler.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi-excelant/src/test/java/org/apache/poi/ss/excelant/MockExcelAntWorkbookHandler.java (original)
+++ poi/trunk/poi-excelant/src/test/java/org/apache/poi/ss/excelant/MockExcelAntWorkbookHandler.java Sun Nov 14 10:18:40 2021
@@ -22,18 +22,19 @@ import static org.junit.jupiter.api.Asse
import org.apache.poi.ss.usermodel.Workbook;
public class MockExcelAntWorkbookHandler implements IExcelAntWorkbookHandler {
- public static boolean executed;
- public static Workbook workbook;
+ public boolean executed = false;
+ public Workbook workbook = null;
+ public final static MockExcelAntWorkbookHandler instance = new MockExcelAntWorkbookHandler();
@Override
public void setWorkbook(Workbook workbook) {
- MockExcelAntWorkbookHandler.workbook = workbook;
+ instance.workbook = workbook;
}
@Override
public void execute() {
- executed = true;
- assertNotNull(workbook);
+ instance.executed = true;
+ assertNotNull(instance.workbook);
}
}
Modified: poi/trunk/poi-excelant/src/test/java/org/apache/poi/ss/excelant/TestBuildFile.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-excelant/src/test/java/org/apache/poi/ss/excelant/TestBuildFile.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi-excelant/src/test/java/org/apache/poi/ss/excelant/TestBuildFile.java (original)
+++ poi/trunk/poi-excelant/src/test/java/org/apache/poi/ss/excelant/TestBuildFile.java Sun Nov 14 10:18:40 2021
@@ -312,8 +312,8 @@ public class TestBuildFile {
assertLogContaining("Using input file: " + TestBuildFile.getDataDir() + "/spreadsheet/excelant.xls");
assertLogContaining("Succeeded when evaluating 'MortgageCalculator'!$B$4.");
- assertNotNull(MockExcelAntWorkbookHandler.workbook, "The workbook should have been passed to the handler");
- assertTrue(MockExcelAntWorkbookHandler.executed, "The handler should have been executed");
+ assertNotNull(MockExcelAntWorkbookHandler.instance.workbook, "The workbook should have been passed to the handler");
+ assertTrue(MockExcelAntWorkbookHandler.instance.executed, "The handler should have been executed");
}
@Test
Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/temp/AesZipFileZipEntrySource.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/temp/AesZipFileZipEntrySource.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/temp/AesZipFileZipEntrySource.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/temp/AesZipFileZipEntrySource.java Sun Nov 14 10:18:40 2021
@@ -24,7 +24,6 @@ import java.io.FileOutputStream;
import java.io.FilterOutputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.security.SecureRandom;
import java.util.Enumeration;
import javax.crypto.Cipher;
@@ -44,6 +43,7 @@ import org.apache.poi.poifs.crypt.Cipher
import org.apache.poi.poifs.crypt.CryptoFunctions;
import org.apache.poi.util.Beta;
import org.apache.poi.util.IOUtils;
+import org.apache.poi.util.RandomSingleton;
import org.apache.poi.util.TempFile;
/**
@@ -106,10 +106,9 @@ public final class AesZipFileZipEntrySou
public static AesZipFileZipEntrySource createZipEntrySource(InputStream is) throws IOException {
// generate session key
- SecureRandom sr = new SecureRandom();
byte[] ivBytes = new byte[16], keyBytes = new byte[16];
- sr.nextBytes(ivBytes);
- sr.nextBytes(keyBytes);
+ RandomSingleton.getInstance().nextBytes(ivBytes);
+ RandomSingleton.getInstance().nextBytes(keyBytes);
final File tmpFile = TempFile.createTempFile("protectedXlsx", ".zip");
copyToFile(is, tmpFile, keyBytes, ivBytes);
IOUtils.closeQuietly(is);
Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/temp/EncryptedTempData.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/temp/EncryptedTempData.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/temp/EncryptedTempData.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/temp/EncryptedTempData.java Sun Nov 14 10:18:40 2021
@@ -25,7 +25,6 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
-import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.CipherInputStream;
@@ -39,6 +38,7 @@ import org.apache.poi.poifs.crypt.Chaini
import org.apache.poi.poifs.crypt.CipherAlgorithm;
import org.apache.poi.poifs.crypt.CryptoFunctions;
import org.apache.poi.util.Beta;
+import org.apache.poi.util.RandomSingleton;
import org.apache.poi.util.TempFile;
/**
@@ -46,8 +46,8 @@ import org.apache.poi.util.TempFile;
*/
@Beta
public class EncryptedTempData {
- private static Logger LOG = LogManager.getLogger(EncryptedTempData.class);
+ private static final Logger LOG = LogManager.getLogger(EncryptedTempData.class);
private static final CipherAlgorithm cipherAlgorithm = CipherAlgorithm.aes128;
private static final String PADDING = "PKCS5Padding";
private final SecretKeySpec skeySpec;
@@ -56,11 +56,10 @@ public class EncryptedTempData {
private CountingOutputStream outputStream;
public EncryptedTempData() throws IOException {
- SecureRandom sr = new SecureRandom();
ivBytes = new byte[16];
byte[] keyBytes = new byte[16];
- sr.nextBytes(ivBytes);
- sr.nextBytes(keyBytes);
+ RandomSingleton.getInstance().nextBytes(ivBytes);
+ RandomSingleton.getInstance().nextBytes(keyBytes);
skeySpec = new SecretKeySpec(keyBytes, cipherAlgorithm.jceId);
tempFile = TempFile.createTempFile("poi-temp-data", ".tmp");
}
Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/temp/SheetDataWriterWithDecorator.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/temp/SheetDataWriterWithDecorator.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/temp/SheetDataWriterWithDecorator.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/temp/SheetDataWriterWithDecorator.java Sun Nov 14 10:18:40 2021
@@ -24,7 +24,6 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
-import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.CipherInputStream;
@@ -35,6 +34,7 @@ import org.apache.poi.poifs.crypt.Chaini
import org.apache.poi.poifs.crypt.CipherAlgorithm;
import org.apache.poi.poifs.crypt.CryptoFunctions;
import org.apache.poi.util.Beta;
+import org.apache.poi.util.RandomSingleton;
import org.apache.poi.xssf.streaming.SheetDataWriter;
@Beta
@@ -49,11 +49,10 @@ public class SheetDataWriterWithDecorato
void init() {
if(skeySpec == null) {
- SecureRandom sr = new SecureRandom();
ivBytes = new byte[16];
byte[] keyBytes = new byte[16];
- sr.nextBytes(ivBytes);
- sr.nextBytes(keyBytes);
+ RandomSingleton.getInstance().nextBytes(ivBytes);
+ RandomSingleton.getInstance().nextBytes(keyBytes);
skeySpec = new SecretKeySpec(keyBytes, cipherAlgorithm.jceId);
}
}
Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/XDDFGradientFillProperties.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/XDDFGradientFillProperties.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/XDDFGradientFillProperties.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/XDDFGradientFillProperties.java Sun Nov 14 10:18:40 2021
@@ -46,7 +46,7 @@ public class XDDFGradientFillProperties
if (props.isSetRotWithShape()) {
return props.getRotWithShape();
} else {
- return null;
+ return false;
}
}
Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/XDDFLinearShadeProperties.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/XDDFLinearShadeProperties.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/XDDFLinearShadeProperties.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/XDDFLinearShadeProperties.java Sun Nov 14 10:18:40 2021
@@ -59,7 +59,7 @@ public class XDDFLinearShadeProperties {
if (props.isSetScaled()) {
return props.getScaled();
} else {
- return null;
+ return false;
}
}
Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/XDDFPictureFillProperties.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/XDDFPictureFillProperties.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/XDDFPictureFillProperties.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/XDDFPictureFillProperties.java Sun Nov 14 10:18:40 2021
@@ -58,7 +58,7 @@ public class XDDFPictureFillProperties i
if (props.isSetRotWithShape()) {
return props.getRotWithShape();
} else {
- return null;
+ return false;
}
}
Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFLine3DChartData.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFLine3DChartData.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFLine3DChartData.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFLine3DChartData.java Sun Nov 14 10:18:40 2021
@@ -191,7 +191,7 @@ public class XDDFLine3DChartData extends
if (series.isSetSmooth()) {
return series.getSmooth().getVal();
} else {
- return null;
+ return false;
}
}
Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFLineChartData.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFLineChartData.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFLineChartData.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFLineChartData.java Sun Nov 14 10:18:40 2021
@@ -174,7 +174,7 @@ public class XDDFLineChartData extends X
if (series.isSetSmooth()) {
return series.getSmooth().getVal();
} else {
- return null;
+ return false;
}
}
Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFScatterChartData.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFScatterChartData.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFScatterChartData.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFScatterChartData.java Sun Nov 14 10:18:40 2021
@@ -144,7 +144,7 @@ public class XDDFScatterChartData extend
if (series.isSetSmooth()) {
return series.getSmooth().getVal();
} else {
- return null;
+ return false;
}
}
Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFSurface3DChartData.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFSurface3DChartData.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFSurface3DChartData.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFSurface3DChartData.java Sun Nov 14 10:18:40 2021
@@ -82,7 +82,7 @@ public class XDDFSurface3DChartData exte
if (chart.isSetWireframe()) {
return chart.getWireframe().getVal();
} else {
- return null;
+ return false;
}
}
Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFSurfaceChartData.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFSurfaceChartData.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFSurfaceChartData.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFSurfaceChartData.java Sun Nov 14 10:18:40 2021
@@ -82,7 +82,7 @@ public class XDDFSurfaceChartData extend
if (chart.isSetWireframe()) {
return chart.getWireframe().getVal();
} else {
- return null;
+ return false;
}
}
Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/text/XDDFBodyProperties.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/text/XDDFBodyProperties.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/text/XDDFBodyProperties.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/text/XDDFBodyProperties.java Sun Nov 14 10:18:40 2021
@@ -60,7 +60,7 @@ public class XDDFBodyProperties {
if (props.isSetAnchorCtr()) {
return props.getAnchorCtr();
} else {
- return null;
+ return false;
}
}
@@ -216,7 +216,7 @@ public class XDDFBodyProperties {
if (props.isSetRtlCol()) {
return props.getRtlCol();
} else {
- return null;
+ return false;
}
}
Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/helpers/XSSFPasswordHelper.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/helpers/XSSFPasswordHelper.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/helpers/XSSFPasswordHelper.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/helpers/XSSFPasswordHelper.java Sun Nov 14 10:18:40 2021
@@ -19,7 +19,6 @@
package org.apache.poi.xssf.usermodel.helpers;
-import java.security.SecureRandom;
import java.util.Arrays;
import java.util.Base64;
import java.util.Locale;
@@ -28,7 +27,9 @@ import javax.xml.namespace.QName;
import org.apache.poi.poifs.crypt.CryptoFunctions;
import org.apache.poi.poifs.crypt.HashAlgorithm;
+import org.apache.poi.poifs.crypt.temp.EncryptedTempData;
import org.apache.poi.util.Internal;
+import org.apache.poi.util.RandomSingleton;
import org.apache.poi.util.StringUtil;
import org.apache.xmlbeans.XmlCursor;
import org.apache.xmlbeans.XmlObject;
@@ -65,8 +66,7 @@ public final class XSSFPasswordHelper {
cur.insertAttributeWithValue(getAttrName(prefix, "password"),
String.format(Locale.ROOT, "%04X", hash).toUpperCase(Locale.ROOT));
} else {
- SecureRandom random = new SecureRandom();
- byte[] salt = random.generateSeed(16);
+ byte[] salt = RandomSingleton.getInstance().generateSeed(16);
// Iterations specifies the number of times the hashing function shall be iteratively run (using each
// iteration's result as the input for the next iteration).
Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFSettings.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFSettings.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFSettings.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFSettings.java Sun Nov 14 10:18:40 2021
@@ -22,7 +22,6 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.math.BigInteger;
-import java.security.SecureRandom;
import java.util.Arrays;
import javax.xml.namespace.QName;
@@ -33,6 +32,7 @@ import org.apache.poi.ooxml.util.POIXMLU
import org.apache.poi.openxml4j.opc.PackagePart;
import org.apache.poi.poifs.crypt.CryptoFunctions;
import org.apache.poi.poifs.crypt.HashAlgorithm;
+import org.apache.poi.util.RandomSingleton;
import org.apache.xmlbeans.XmlOptions;
import org.openxmlformats.schemas.officeDocument.x2006.sharedTypes.STAlgClass;
import org.openxmlformats.schemas.officeDocument.x2006.sharedTypes.STAlgType;
@@ -46,7 +46,6 @@ import org.openxmlformats.schemas.wordpr
import org.openxmlformats.schemas.wordprocessingml.x2006.main.SettingsDocument;
public class XWPFSettings extends POIXMLDocumentPart {
-
private CTSettings ctSettings;
/**
@@ -258,8 +257,7 @@ public class XWPFSettings extends POIXML
}
- SecureRandom random = new SecureRandom();
- byte[] salt = random.generateSeed(16);
+ byte[] salt = RandomSingleton.getInstance().generateSeed(16);
// Iterations specifies the number of times the hashing function shall be iteratively run (using each
// iteration's result as the input for the next iteration).
Modified: poi/trunk/poi-ooxml/src/test/java/org/apache/poi/poifs/crypt/dsig/DummyKeystore.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/poifs/crypt/dsig/DummyKeystore.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/test/java/org/apache/poi/poifs/crypt/dsig/DummyKeystore.java (original)
+++ poi/trunk/poi-ooxml/src/test/java/org/apache/poi/poifs/crypt/dsig/DummyKeystore.java Sun Nov 14 10:18:40 2021
@@ -40,7 +40,6 @@ import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.PrivateKey;
import java.security.PublicKey;
-import java.security.SecureRandom;
import java.security.cert.Certificate;
import java.security.cert.CertificateEncodingException;
import java.security.cert.CertificateException;
@@ -57,6 +56,7 @@ import java.util.stream.Stream;
import org.apache.poi.poifs.crypt.CryptoFunctions;
import org.apache.poi.poifs.storage.RawDataUtil;
import org.apache.poi.util.LocaleUtil;
+import org.apache.poi.util.RandomSingleton;
import org.bouncycastle.asn1.DEROctetString;
import org.bouncycastle.asn1.ocsp.OCSPObjectIdentifiers;
import org.bouncycastle.asn1.pkcs.PrivateKeyInfo;
@@ -119,7 +119,6 @@ public class DummyKeystore {
}
}
- private static final SecureRandom RANDOM = new SecureRandom();
private static final String DUMMY_ALIAS = "Test";
private static final String DUMMY_PASS = "test";
@@ -187,7 +186,7 @@ public class DummyKeystore {
public KeyCertPair addEntry(String keyAlias, String keyPass, int keySize, int expiryInMonths) throws GeneralSecurityException, IOException, OperatorCreationException {
if (!keystore.isKeyEntry(keyAlias)) {
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
- keyPairGenerator.initialize(new RSAKeyGenParameterSpec(keySize, RSAKeyGenParameterSpec.F4), RANDOM);
+ keyPairGenerator.initialize(new RSAKeyGenParameterSpec(keySize, RSAKeyGenParameterSpec.F4), RandomSingleton.getInstance());
KeyPair pair = keyPairGenerator.generateKeyPair();
Date notBefore = new Date();
@@ -262,7 +261,7 @@ public class DummyKeystore {
X509v3CertificateBuilder certificateGenerator = new X509v3CertificateBuilder(
issuerName
- , new BigInteger(128, new SecureRandom())
+ , new BigInteger(128, RandomSingleton.getInstance())
, notBefore
, notAfter
, new X500Name(subjectDn)
Modified: poi/trunk/poi-ooxml/src/test/java/org/apache/poi/util/tests/TestIdentifierManager.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/util/tests/TestIdentifierManager.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/test/java/org/apache/poi/util/tests/TestIdentifierManager.java (original)
+++ poi/trunk/poi-ooxml/src/test/java/org/apache/poi/util/tests/TestIdentifierManager.java Sun Nov 14 10:18:40 2021
@@ -75,9 +75,9 @@ class TestIdentifierManager {
@Test
void testReserveNew() {
IdentifierManager manager = new IdentifierManager(10L,12L);
- assertSame(10L,manager.reserveNew());
- assertSame(11L,manager.reserveNew());
- assertSame(12L,manager.reserveNew());
+ assertEquals(10L,manager.reserveNew());
+ assertEquals(11L,manager.reserveNew());
+ assertEquals(12L,manager.reserveNew());
assertThrows(IllegalStateException.class, manager::reserveNew);
}
Modified: poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xslf/usermodel/TestXSLFTable.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xslf/usermodel/TestXSLFTable.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xslf/usermodel/TestXSLFTable.java (original)
+++ poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xslf/usermodel/TestXSLFTable.java Sun Nov 14 10:18:40 2021
@@ -31,11 +31,9 @@ import java.awt.Rectangle;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
-import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
-import java.util.Random;
import org.apache.poi.sl.draw.DrawTableShape;
import org.apache.poi.sl.usermodel.ShapeType;
@@ -44,6 +42,7 @@ import org.apache.poi.sl.usermodel.Strok
import org.apache.poi.sl.usermodel.TableCell.BorderEdge;
import org.apache.poi.sl.usermodel.TextParagraph;
import org.apache.poi.sl.usermodel.VerticalAlignment;
+import org.apache.poi.util.RandomSingleton;
import org.apache.poi.util.TempFile;
import org.apache.poi.xslf.XSLFTestDataSamples;
import org.apache.poi.xslf.util.PPTX2PNG;
@@ -143,17 +142,17 @@ class TestXSLFTable {
String[] names = { "car", "rubber duckie", "phone", "gadget" };
String[] desc = { "new", "used", "untouched" };
- Random r = new Random();
+
for (int row=1; row<=rows; row++) {
String[] line = new String[header.length];
line[0] = Integer.toString(row);
- line[1] = Integer.toString(r.nextInt(1000));
- line[2] = names[r.nextInt(names.length)];
- line[3] = "The "+desc[r.nextInt(desc.length)]+" "+line[2]+" in "+(2017+row);
- line[4] = "$"+r.nextInt(50000);
- line[5] = r.nextInt(100)+"%";
- line[6] = "$"+r.nextInt(50000);
+ line[1] = Integer.toString(RandomSingleton.getInstance().nextInt(1000));
+ line[2] = names[RandomSingleton.getInstance().nextInt(names.length)];
+ line[3] = "The "+desc[RandomSingleton.getInstance().nextInt(desc.length)]+" "+line[2]+" in "+(2017+row);
+ line[4] = "$"+RandomSingleton.getInstance().nextInt(50000);
+ line[5] = RandomSingleton.getInstance().nextInt(100)+"%";
+ line[6] = "$"+RandomSingleton.getInstance().nextInt(50000);
System.arraycopy(line, 0, data[row], 0, header.length);
}
@@ -311,7 +310,7 @@ class TestXSLFTable {
tc0.setText("bla bla bla bla");
tab.setColumnWidth(0, 50);
- // usually text height == 88, but font rendering is plattform dependent
+ // usually text height == 88, but font rendering is platform dependent
// so we use something more reliable
assertTrue(tc0.getTextHeight() > 50);
assertEquals(0, tc0.getLineWidth(), 0);
Modified: poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/streaming/TestSXSSFWorkbook.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/streaming/TestSXSSFWorkbook.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/streaming/TestSXSSFWorkbook.java (original)
+++ poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/streaming/TestSXSSFWorkbook.java Sun Nov 14 10:18:40 2021
@@ -366,9 +366,19 @@ public final class TestSXSSFWorkbook ext
if (i == 0) {
populateWorkbook(wb);
} else {
- System.gc();
- System.gc();
- System.gc();
+ /*
+ Code explicitly invokes garbage collection. Except for specific use in benchmarking,
+ this is very dubious.
+
+ In the past, situations where people have explicitly invoked the garbage collector in
+ routines such as close or finalize methods has led to huge performance black holes.
+ Garbage collection can be expensive. Any situation that forces hundreds or thousands
+ of garbage collections will bring the machine to a crawl.
+ */
+
+ //System.gc();
+ //System.gc();
+ //System.gc();
}
wb.write(outSteam);
Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestPictures.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestPictures.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestPictures.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestPictures.java Sun Nov 14 10:18:40 2021
@@ -34,7 +34,6 @@ import java.net.URL;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
-import java.util.Random;
import javax.imageio.ImageIO;
@@ -53,6 +52,7 @@ import org.apache.poi.sl.image.ImageHead
import org.apache.poi.sl.image.ImageHeaderPICT;
import org.apache.poi.sl.image.ImageHeaderWMF;
import org.apache.poi.sl.usermodel.PictureData.PictureType;
+import org.apache.poi.util.RandomSingleton;
import org.apache.poi.util.Units;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
@@ -497,10 +497,9 @@ public final class TestPictures {
originalOffsets = ppt1.getPictureData().stream().mapToInt(HSLFPictureData::getOffset).toArray();
originalNumberOfRecords = ppt1.getPictureData().get(0).bStore.getChildCount();
- Random random = new Random();
for (HSLFPictureData picture : ppt1.getPictureData()) {
// Bound is arbitrary and irrelevant to the test.
- picture.bse.setOffset(random.nextInt(500_000));
+ picture.bse.setOffset(RandomSingleton.getInstance().nextInt(500_000));
}
try (HSLFSlideShow ppt2 = writeOutAndReadBack(ppt1)) {
Modified: poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/Encryptor.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/Encryptor.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/Encryptor.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/Encryptor.java Sun Nov 14 10:18:40 2021
@@ -31,6 +31,7 @@ import org.apache.poi.poifs.filesystem.P
import org.apache.poi.util.GenericRecordUtil;
public abstract class Encryptor implements GenericRecord {
+
protected static final String DEFAULT_POIFS_ENTRY = Decryptor.DEFAULT_POIFS_ENTRY;
private EncryptionInfo encryptionInfo;
private SecretKey secretKey;
Modified: poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/agile/AgileEncryptor.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/agile/AgileEncryptor.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/agile/AgileEncryptor.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/agile/AgileEncryptor.java Sun Nov 14 10:18:40 2021
@@ -37,8 +37,6 @@ import java.io.InputStream;
import java.io.OutputStream;
import java.security.GeneralSecurityException;
import java.security.MessageDigest;
-import java.security.SecureRandom;
-import java.util.Random;
import javax.crypto.Cipher;
import javax.crypto.Mac;
@@ -62,6 +60,7 @@ import org.apache.poi.util.IOUtils;
import org.apache.poi.util.LittleEndian;
import org.apache.poi.util.LittleEndianByteArrayOutputStream;
import org.apache.poi.util.LittleEndianConsts;
+import org.apache.poi.util.RandomSingleton;
import org.apache.poi.util.XMLHelper;
import org.w3c.dom.Document;
@@ -81,7 +80,6 @@ public class AgileEncryptor extends Encr
@Override
public void confirmPassword(String password) {
// see [MS-OFFCRYPTO] - 2.3.3 EncryptionVerifier
- Random r = new SecureRandom();
AgileEncryptionHeader header = (AgileEncryptionHeader)getEncryptionInfo().getHeader();
int blockSize = header.getBlockSize();
int keySize = header.getKeySize()/8;
@@ -93,11 +91,13 @@ public class AgileEncryptor extends Encr
, newKeySalt = IOUtils.safelyAllocate(blockSize, maxLen)
, newKeySpec = IOUtils.safelyAllocate(keySize, maxLen)
, newIntegritySalt = IOUtils.safelyAllocate(hashSize, maxLen);
- r.nextBytes(newVerifierSalt); // blocksize
- r.nextBytes(newVerifier); // blocksize
- r.nextBytes(newKeySalt); // blocksize
- r.nextBytes(newKeySpec); // keysize
- r.nextBytes(newIntegritySalt); // hashsize
+
+ // using a java.security.SecureRandom (and avoid allocating a new SecureRandom for each random number needed).
+ RandomSingleton.getInstance().nextBytes(newVerifierSalt); // blocksize
+ RandomSingleton.getInstance().nextBytes(newVerifier); // blocksize
+ RandomSingleton.getInstance().nextBytes(newKeySalt); // blocksize
+ RandomSingleton.getInstance().nextBytes(newKeySpec); // keysize
+ RandomSingleton.getInstance().nextBytes(newIntegritySalt); // hashsize
confirmPassword(password, newKeySpec, newKeySalt, newVerifierSalt, newVerifier, newIntegritySalt);
}
Modified: poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/binaryrc4/BinaryRC4Encryptor.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/binaryrc4/BinaryRC4Encryptor.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/binaryrc4/BinaryRC4Encryptor.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/binaryrc4/BinaryRC4Encryptor.java Sun Nov 14 10:18:40 2021
@@ -22,8 +22,6 @@ import java.io.IOException;
import java.io.OutputStream;
import java.security.GeneralSecurityException;
import java.security.MessageDigest;
-import java.security.SecureRandom;
-import java.util.Random;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
@@ -38,6 +36,7 @@ import org.apache.poi.poifs.crypt.HashAl
import org.apache.poi.poifs.crypt.standard.EncryptionRecord;
import org.apache.poi.poifs.filesystem.DirectoryNode;
import org.apache.poi.util.LittleEndianByteArrayOutputStream;
+import org.apache.poi.util.RandomSingleton;
public class BinaryRC4Encryptor extends Encryptor {
@@ -52,11 +51,12 @@ public class BinaryRC4Encryptor extends
@Override
public void confirmPassword(String password) {
- Random r = new SecureRandom();
byte[] salt = new byte[16];
byte[] verifier = new byte[16];
- r.nextBytes(salt);
- r.nextBytes(verifier);
+
+ // using a java.security.SecureRandom (and avoid allocating a new SecureRandom for each random number needed).
+ RandomSingleton.getInstance().nextBytes(salt);
+ RandomSingleton.getInstance().nextBytes(verifier);
confirmPassword(password, null, null, verifier, salt, null);
}
Modified: poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/cryptoapi/CryptoAPIEncryptor.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/cryptoapi/CryptoAPIEncryptor.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/cryptoapi/CryptoAPIEncryptor.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/cryptoapi/CryptoAPIEncryptor.java Sun Nov 14 10:18:40 2021
@@ -22,10 +22,8 @@ import java.io.IOException;
import java.io.OutputStream;
import java.security.GeneralSecurityException;
import java.security.MessageDigest;
-import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.List;
-import java.util.Random;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
@@ -43,6 +41,7 @@ import org.apache.poi.poifs.filesystem.E
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.util.IOUtils;
import org.apache.poi.util.LittleEndian;
+import org.apache.poi.util.RandomSingleton;
import org.apache.poi.util.StringUtil;
public class CryptoAPIEncryptor extends Encryptor {
@@ -58,11 +57,11 @@ public class CryptoAPIEncryptor extends
@Override
public void confirmPassword(String password) {
- Random r = new SecureRandom();
byte[] salt = new byte[16];
byte[] verifier = new byte[16];
- r.nextBytes(salt);
- r.nextBytes(verifier);
+ // using a java.security.SecureRandom (and avoid allocating a new SecureRandom for each random number needed).
+ RandomSingleton.getInstance().nextBytes(salt);
+ RandomSingleton.getInstance().nextBytes(verifier);
confirmPassword(password, null, null, verifier, salt, null);
}
Modified: poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/standard/StandardEncryptor.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/standard/StandardEncryptor.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/standard/StandardEncryptor.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/standard/StandardEncryptor.java Sun Nov 14 10:18:40 2021
@@ -28,9 +28,7 @@ import java.io.IOException;
import java.io.OutputStream;
import java.security.GeneralSecurityException;
import java.security.MessageDigest;
-import java.security.SecureRandom;
import java.util.Arrays;
-import java.util.Random;
import javax.crypto.Cipher;
import javax.crypto.CipherOutputStream;
@@ -51,6 +49,7 @@ import org.apache.poi.util.IOUtils;
import org.apache.poi.util.LittleEndianByteArrayOutputStream;
import org.apache.poi.util.LittleEndianConsts;
import org.apache.poi.util.LittleEndianOutputStream;
+import org.apache.poi.util.RandomSingleton;
import org.apache.poi.util.TempFile;
public class StandardEncryptor extends Encryptor {
@@ -65,10 +64,11 @@ public class StandardEncryptor extends E
@Override
public void confirmPassword(String password) {
// see [MS-OFFCRYPTO] - 2.3.3 EncryptionVerifier
- Random r = new SecureRandom();
byte[] salt = new byte[16], verifier = new byte[16];
- r.nextBytes(salt);
- r.nextBytes(verifier);
+
+ // using a java.security.SecureRandom (and avoid allocating a new SecureRandom for each random number needed).
+ RandomSingleton.getInstance().nextBytes(salt);
+ RandomSingleton.getInstance().nextBytes(verifier);
confirmPassword(password, null, null, salt, verifier, null);
}
Modified: poi/trunk/poi/src/main/java/org/apache/poi/ss/util/CellUtil.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/util/CellUtil.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/util/CellUtil.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/util/CellUtil.java Sun Nov 14 10:18:40 2021
@@ -244,7 +244,7 @@ public final class CellUtil {
// Copy CellStyle
if (policy.isCopyCellStyle()) {
if (destCell.getSheet().getWorkbook() == srcCell.getSheet().getWorkbook()) {
- destCell.setCellStyle(srcCell == null ? null : srcCell.getCellStyle());
+ destCell.setCellStyle(srcCell.getCellStyle());
} else {
CellStyle srcStyle = srcCell.getCellStyle();
CellStyle destStyle = context == null ? null : context.getMappedStyle(srcStyle);
Modified: poi/trunk/poi/src/main/java/org/apache/poi/util/DefaultTempFileCreationStrategy.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/util/DefaultTempFileCreationStrategy.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/util/DefaultTempFileCreationStrategy.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/util/DefaultTempFileCreationStrategy.java Sun Nov 14 10:18:40 2021
@@ -21,7 +21,6 @@ import static org.apache.poi.util.TempFi
import java.io.File;
import java.io.IOException;
-import java.security.SecureRandom;
/**
* Default implementation of the {@link TempFileCreationStrategy} used by {@link TempFile}:
@@ -41,9 +40,6 @@ public class DefaultTempFileCreationStra
/** To keep files after JVM exit, set the <code>-Dpoi.keep.tmp.files</code> JVM property */
public static final String KEEP_FILES = "poi.keep.tmp.files";
- /** random number generator to generate unique filenames */
- private static final SecureRandom random = new SecureRandom();
-
/** The directory where the temporary files will be created (<code>null</code> to use the default directory). */
private File dir;
@@ -126,7 +122,7 @@ public class DefaultTempFileCreationStra
// Generate a unique new filename
// FIXME: Java 7+: use java.nio.Files#createTempDirectory
- final long n = random.nextLong();
+ final long n = RandomSingleton.getInstance().nextLong();
File newDirectory = new File(dir, prefix + Long.toString(n));
createTempDirectory(newDirectory);
Modified: poi/trunk/poi/src/test/java/org/apache/poi/hpsf/basic/TestMetaDataIPI.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/hpsf/basic/TestMetaDataIPI.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/hpsf/basic/TestMetaDataIPI.java (original)
+++ poi/trunk/poi/src/test/java/org/apache/poi/hpsf/basic/TestMetaDataIPI.java Sun Nov 14 10:18:40 2021
@@ -26,7 +26,6 @@ import static org.junit.jupiter.api.Asse
import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
-import java.util.Random;
import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
import org.apache.poi.hpsf.CustomProperties;
@@ -36,6 +35,7 @@ import org.apache.poi.hpsf.PropertySetFa
import org.apache.poi.hpsf.SummaryInformation;
import org.apache.poi.poifs.filesystem.DirectoryEntry;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
+import org.apache.poi.util.RandomSingleton;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -583,16 +583,19 @@ final class TestMetaDataIPI {
StringBuilder sb = new StringBuilder();
String[] umlaute = { "\u00e4", "\u00fc", "\u00f6", "\u00dc", "$", "\u00d6", "\u00dc",
"\u00c9", "\u00d6", "@", "\u00e7", "&" };
- Random rand = new Random(0); // TODO - no Random - tests should be completely deterministic
for (int i = 0; i < 5; i++) {
sb.append(s);
sb.append(' ');
- char j = (char) rand.nextInt(220);
+
+ // TODO - no Random - tests should be completely deterministic
+ char j = (char) RandomSingleton.getInstance().nextInt(220);
j += 33;
sb.append('>');
sb.append(Character.valueOf(j));
sb.append('=');
- sb.append(umlaute[rand.nextInt(umlaute.length)]);
+
+ // TODO - no Random - tests should be completely deterministic
+ sb.append(umlaute[RandomSingleton.getInstance().nextInt(umlaute.length)]);
sb.append('<');
}
return sb;
Modified: poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestCellStyle.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestCellStyle.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestCellStyle.java (original)
+++ poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestCellStyle.java Sun Nov 14 10:18:40 2021
@@ -32,7 +32,6 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Calendar;
import java.util.Date;
-import java.util.Random;
import java.util.stream.Stream;
import org.apache.poi.hssf.HSSFTestDataSamples;
@@ -48,6 +47,7 @@ import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.util.LocaleUtil;
+import org.apache.poi.util.RandomSingleton;
import org.apache.poi.util.TempFile;
import org.junit.jupiter.api.Test;
@@ -414,9 +414,8 @@ final class TestCellStyle {
@Test
void test56563() {
Stream.of("56563a.xls", "56563b.xls").parallel().forEach(fileName -> assertDoesNotThrow(() -> {
- Random rand = new Random();
for(int i=0; i<10; i++) {
- Thread.sleep(rand.nextInt(300));
+ Thread.sleep(RandomSingleton.getInstance().nextInt(300));
try (Workbook wb = openSample(fileName)) {
for (Row row : wb.getSheetAt(0)) {
for (Cell cell : row) {
Modified: poi/trunk/poi/src/test/java/org/apache/poi/poifs/filesystem/TestFileMagic.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/poifs/filesystem/TestFileMagic.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/poifs/filesystem/TestFileMagic.java (original)
+++ poi/trunk/poi/src/test/java/org/apache/poi/poifs/filesystem/TestFileMagic.java Sun Nov 14 10:18:40 2021
@@ -33,9 +33,9 @@ import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
-import java.util.Random;
import org.apache.poi.POIDataSamples;
+import org.apache.poi.util.RandomSingleton;
import org.apache.poi.util.TempFile;
import org.junit.jupiter.api.Test;
@@ -165,12 +165,10 @@ class TestFileMagic {
@Test
void testRandomPatterns() {
- Random random = new Random();
-
// just try to trash the functionality with some byte-patterns
for(int i = 0; i < 1000;i++) {
final byte[] data = new byte[12];
- random.nextBytes(data);
+ RandomSingleton.getInstance().nextBytes(data);
// we cannot check for UNKNOWN as we might hit valid byte-patterns here as well
try {
Modified: poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/function/ExcelFileFormatDocFunctionExtractor.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/function/ExcelFileFormatDocFunctionExtractor.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/function/ExcelFileFormatDocFunctionExtractor.java (original)
+++ poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/function/ExcelFileFormatDocFunctionExtractor.java Sun Nov 14 10:18:40 2021
@@ -37,6 +37,7 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.Set;
import java.util.Stack;
import java.util.zip.ZipFile;
@@ -304,7 +305,7 @@ public final class ExcelFileFormatDocFun
@Override
public void endElement(String namespaceURI, String localName, String name) {
String expectedName = _elemNameStack.peek();
- if(expectedName != name) {
+ if(!Objects.equals(name, expectedName)) {
throw new RuntimeException("close tag mismatch");
}
if(matchesPath(0, HEADING_PATH_NAMES)) {
Modified: poi/trunk/poi/src/test/java/org/apache/poi/util/TestIOUtils.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/util/TestIOUtils.java?rev=1895016&r1=1895015&r2=1895016&view=diff
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/util/TestIOUtils.java (original)
+++ poi/trunk/poi/src/test/java/org/apache/poi/util/TestIOUtils.java Sun Nov 14 10:18:40 2021
@@ -36,7 +36,6 @@ import java.io.PushbackInputStream;
import java.nio.ByteBuffer;
import java.nio.channels.ReadableByteChannel;
import java.nio.charset.StandardCharsets;
-import java.util.Random;
import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
import org.apache.poi.EmptyFileException;
@@ -48,7 +47,7 @@ import org.junit.jupiter.api.parallel.Is
@Isolated // this test changes global static BYTE_ARRAY_MAX_OVERRIDE
final class TestIOUtils {
private static File TMP;
- private static final long LENGTH = 300 + new Random().nextInt(9000);
+ private static final long LENGTH = 300 + RandomSingleton.getInstance().nextInt(9000);
@BeforeAll
public static void setUp() throws IOException {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org